/notes/code/sql/HW_ComputerVariationAdvancedSol.sql (6884c9d20481f4c6dba99a8a924dcb622ac89652) (2635 bytes) (mode 100644) (type blob)
DROP SCHEMA IF EXISTS HW_COMPUTERVARIATIONADVANCED;
CREATE SCHEMA HW_COMPUTERVARIATIONADVANCED;
USE HW_COMPUTERVARIATIONADVANCED;
CREATE TABLE COMPUTER (
ID VARCHAR(20) PRIMARY KEY,
Model VARCHAR(40)
);
CREATE TABLE PERIPHERAL (
ID VARCHAR(20) PRIMARY KEY,
Model VARCHAR(40),
TYPE ENUM ('mouse', 'keyboard', 'screen', 'printer'),
LastConnexion DATETIME
);
CREATE TABLE CONNEXION (
Computer VARCHAR(20),
Peripheral VARCHAR(20),
PRIMARY KEY (Computer, Peripheral),
FOREIGN KEY (Computer) REFERENCES COMPUTER (ID) ON DELETE
CASCADE ON UPDATE CASCADE,
FOREIGN KEY (Peripheral) REFERENCES PERIPHERAL (ID) ON
DELETE RESTRICT ON UPDATE CASCADE
);
CREATE TRIGGER last_connexion_update
BEFORE INSERT ON CONNEXION
FOR EACH ROW UPDATE PERIPHERAL
SET LastConnexion = NOW ()
WHERE NEW.Peripheral = PERIPHERAL.ID;
INSERT INTO COMPUTER
VALUES (
'A',
'Apple IIc Plus'),
(
'B',
'Commodore SX-64');
INSERT INTO PERIPHERAL (
ID,
Model,
TYPE)
VALUES (
'12',
'Trendcom Model',
'printer'),
(
'14',
'TP-10 Thermal Matrix',
'printer'),
(
'15',
'IBM Selectric',
'keyboard');
INSERT INTO CONNEXION
VALUES (
'A',
'12'),
(
'B',
'14'),
(
'A',
'15');
SELECT *
FROM PERIPHERAL;
-- start snippet solution
/* code/sql/HW_ComputerVariationAdvancedSol.sql */
START TRANSACTION;
DELETE FROM CONNEXION
WHERE Computer = 'A';
SELECT *
FROM COMPUTER;
SELECT *
FROM PERIPHERAL;
SELECT *
FROM CONNEXION;
ROLLBACK;
START TRANSACTION;
DELETE FROM COMPUTER
WHERE ID = 'A';
SELECT *
FROM COMPUTER;
SELECT *
FROM PERIPHERAL;
SELECT *
FROM CONNEXION;
ROLLBACK;
START TRANSACTION;
DELETE FROM PERIPHERAL
WHERE ID = '15';
SELECT *
FROM COMPUTER;
SELECT *
FROM PERIPHERAL;
SELECT *
FROM CONNEXION;
ROLLBACK;
START TRANSACTION;
DELETE FROM CONNEXION
WHERE Computer <> 'A';
SELECT *
FROM COMPUTER;
SELECT *
FROM PERIPHERAL;
SELECT *
FROM CONNEXION;
ROLLBACK;
SELECT TYPE
FROM PERIPHERAL
WHERE ID = '12';
SELECT ID
FROM COMPUTER
WHERE Model LIKE '%Apple%';
SELECT COUNT(ID)
FROM COMPUTER;
SELECT DISTINCT (TYPE)
FROM PERIPHERAL;
SELECT CONNEXION.Computer
FROM CONNEXION,
PERIPHERAL
WHERE PERIPHERAL.Type = 'keyboard'
AND PERIPHERAL.ID = CONNEXION.Peripheral;
SELECT COMPUTER.Model
FROM CONNEXION,
PERIPHERAL,
COMPUTER
WHERE PERIPHERAL.Model = 'TP-10 Thermal Matrix'
AND PERIPHERAL.ID = CONNEXION.Peripheral
AND CONNEXION.Computer = COMPUTER.ID;
INSERT INTO CONNEXION
VALUES (
'B',
'12');
SELECT *
FROM COMPUTER;
SELECT *
FROM PERIPHERAL;
-- Note that the "LastConnexion" attribute has been updated.
SELECT *
FROM CONNEXION;
-- end snippet solution
Mode |
Type |
Size |
Ref |
File |
100644 |
blob |
15398 |
ee75155d2d99639acd17d31b2cc23cd752078e7e |
CONTRIB.md |
100644 |
blob |
20625 |
25b8e45e7f103089fb70fae5a219f09a29ef5312 |
KNOWN_BUGS.md |
100644 |
blob |
17217 |
e5c1f9f898cca948da42333b100e331d62b61d3c |
LICENSE.md |
100644 |
blob |
1997 |
f8801648fd4ba5843a2cbca8b10e4f69ba5d9b25 |
Makefile |
100644 |
blob |
6695 |
0b91924ffc7b73e2d36150369d4fd41a44b099c5 |
README.md |
040000 |
tree |
- |
eb7afc38251ada69e1967e1ce3e49967eca2267c |
install |
040000 |
tree |
- |
f16b283429b64b620b3bd7681a446ff54d504f84 |
notes |
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"
Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/caubert/CSCI_3410
Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/caubert/CSCI_3410
Clone this repository using git:
git clone git://git.rocketgit.com/user/caubert/CSCI_3410
You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a
merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main