ajout du tp8 et du tp d'alchimiste

master
antoine.perederii 3 years ago
parent 1db7f10609
commit b188765fab

@ -0,0 +1,235 @@
DROP TABLE REPAS;
DROP TABLE AMOUR;
DROP TABLE DRAGON;
DROP TABLE NOURRITURE;
DROP TABLE TERRITOIRE;
\! clear
CREATE TABLE TERRITOIRE(
num_terr char(3) PRIMARY KEY,
nom varchar(30) UNIQUE,
longitude numeric NOT NULL CHECK (longitude <= 180 AND longitude >= -180),
latitude1 numeric NOT NULL CHECK (latitude1 <= 90),
latitude2 char(1) NOT NULL CHECK (latitude2 ='S' OR latitude2 ='N')
);
CREATE TABLE DRAGON(
numD char(5) PRIMARY KEY,
nom varchar(30) UNIQUE,
longeur numeric NOT NULL CHECK (longeur > 0),
sexe char(1) NOT NULL CHECK (sexe ='F' OR sexe ='M'),
nb_ecailles numeric CHECK (nb_ecailles > 0),
date_naissance date,
en_amour varchar(20) NOT NULL CHECK (en_amour ='macho' AND sexe='M' OR en_amour='timide' OR en_amour='sincere' OR en_amour='volage'),
crache_feu char(1) CHECK (crache_feu ='O' OR crache_feu ='N'),
num_terr char(4) REFERENCES TERRITOIRE
);
CREATE TABLE NOURRITURE(
numN char(5)PRIMARY KEY,
nom varchar(30) UNIQUE,
calories numeric NOT NULL CHECK (calories >0)
);
CREATE TABLE AMOUR (
force varchar(20) CHECK (force='un peu' OR force='beaucoup' OR force='passionnement' OR force='a la folie'),
numDragon1 char(5) REFERENCES DRAGON,
numDragon2 char(5) REFERENCES DRAGON,
PRIMARY KEY (numDragon1,numDragon2)
);
CREATE TABLE REPAS(
date_repas date,
qte numeric NOT NULL CHECK (qte >0),
numD char(5) REFERENCES DRAGON,
numN char(5) REFERENCES NOURRITURE,
PRIMARY KEY (numD,numN)
);
INSERT INTO TERRITOIRE VALUES('T01', 'terre brûlées', 92, 40, 'S');
INSERT INTO TERRITOIRE VALUES ('T02', 'Terre de fleurs', 98, 48, 'S');
INSERT INTO TERRITOIRE VALUES ('T03', 'Fleur de naiges', 100, 8, 'N');
INSERT INTO DRAGON VALUES('D0001', 'Smeagol', 152, 'M', 1857,'14/06/1985', 'macho', 'O', 'T02');
INSERT INTO DRAGON VALUES ('D0002', 'Birduth', 258, 'M', 4787, '05/05/1989', 'timide', 'N', 'T01');
INSERT INTO DRAGON VALUES ('D0003', 'Negueth', 128,'F',1582,'08/08/1992', 'sincere', 'O', 'T02');
INSERT INTO DRAGON VALUES ('D0004', 'Miss Toc', 183,'F',2781,'04/07/2020', 'volage', NULL, 'T01');
INSERT INTO DRAGON VALUES ('D0005', 'Bolong', 213,'M',754,'06/05/2010', 'macho', 'N', 'T01');
INSERT INTO DRAGON VALUES ('D0006', 'Miloch', 83,'M',718,'29/04/2015', 'timide', 'O', 'T02');
INSERT INTO DRAGON VALUES ('D0007', 'Nessie', 168,'M',1721,'12/12/2005', 'macho', 'O', 'T02');
INSERT INTO DRAGON VALUES ('D0008', 'Tarak', 123,'F',851,'15/04/2009', 'timide', 'N', 'T03');
INSERT INTO DRAGON VALUES ('D0009', 'Solong', 173,'M',1481,'04/08/2021', 'timide', NULL, 'T01');
INSERT INTO NOURRITURE VALUES ('P0001', 'Pomme', '7');
INSERT INTO NOURRITURE VALUES ('P0002', 'Cacahuète', '10');
INSERT INTO NOURRITURE VALUES ('P0003', 'Orange', '25');
INSERT INTO NOURRITURE VALUES ('P0004', 'Oeuf', '15');
INSERT INTO NOURRITURE VALUES ('P0005', 'Ver', '3');
INSERT INTO NOURRITURE VALUES ('P0006', 'Poisson', '35');
INSERT INTO AMOUR VALUES ('passionnement', 'D0001', 'D0008');
INSERT INTO AMOUR VALUES ('beaucoup', 'D0002', 'D0003');
INSERT INTO AMOUR VALUES ('a la folie', 'D0003', 'D0006');
INSERT INTO AMOUR VALUES ('a la folie', 'D0006', 'D0003');
INSERT INTO AMOUR VALUES ('un peu', 'D0008', 'D0005');
INSERT INTO AMOUR VALUES ('beaucoup', 'D0005', 'D0008');
INSERT INTO AMOUR VALUES ('un peu', 'D0007', 'D0008');
INSERT INTO REPAS VALUES ('10/09/2021', 1000, 'D0001', 'P0002');
INSERT INTO REPAS VALUES ('10/09/2021', 16, 'D0001', 'P0001');
INSERT INTO REPAS VALUES ('11/09/2021', 4, 'D0005', 'P0004');
INSERT INTO REPAS VALUES ('10/09/2021', 6, 'D0003', 'P0003');
INSERT INTO REPAS VALUES ('11/09/2021', 1, 'D0003', 'P0004');
INSERT INTO REPAS VALUES ('10/09/2021', 53, 'D0006', 'P0005');
INSERT INTO REPAS VALUES ('11/09/2021', 100, 'D0006', 'P0002');
INSERT INTO REPAS VALUES ('10/09/2021', 20, 'D0007', 'P0006');
INSERT INTO REPAS VALUES ('10/09/2021', 10, 'D0008', 'P0001');
INSERT INTO REPAS VALUES ('11/09/2021', 10, 'D0008', 'P0003');
INSERT INTO REPAS VALUES ('10/09/2021', 1, 'D0009', 'P0006');
INSERT INTO REPAS VALUES ('11/09/2021', 2, 'D0009', 'P0003');
INSERT INTO REPAS VALUES ('12/09/2021', 8, 'D0009', 'P0004');
INSERT INTO REPAS VALUES ('25/09/2021', 20, 'D0006', 'P0003');
SELECT * FROM TERRITOIRE;
SELECT * FROM DRAGON;
SELECT * FROM NOURRITURE;
SELECT * FROM AMOUR;
SELECT * FROM REPAS;
/* TP5 a mettre dans le terminale */
/* Question 1 */
/* SELECT nom FROM DRAGON WHERE crache_feu = 'O'; */
/* Question 2 */
/* SELECT nom FROM DRAGON WHERE crache_feu = 'O' AND en_amour = 'timide'; */
/* Question 3 */
/* SELECT * FROM DRAGON WHERE sexe = 'F' ORDER BY longeur DESC; */
/* Question 4 */
/* SELECT longeur/nb_ecailles FROM DRAGON; */
/* Question 5 */
/* SELECT DISTINCT numDragon1 FROM AMOUR; */
/* Question 6 */
/* SELECT numDragon1 FROM AMOUR WHERE numDragon2 = 'D0003'; */
/* Question 7 */
/* SELECT numDragon2 FROM AMOUR WHERE numDragon1 = 'D0005'; */
/* Question 8 */
/* SELECT numDragon1 FROM AMOUR WHERE force = 'un peu'; */
/* Question 9 */
/* SELECT numDragon1, force, numDragon2 FROM AMOUR WHERE force = 'passionnement'; */
/* Question 10 */
/* SELECT * FROM NOURRITURE WHERE calories < 10; */
/* Question 11 */
/* SELECT * FROM REPAS JOIN NOURRITURE ON REPAS.numN = NOURRITURE.numN WHERE NOURRITURE.nom = 'Oeuf'; */
/* Question 12 */
/* SELECT distinct(numD) FROM REPAS; */
/* Question 13 */
/* SELECT * FROM DRAGON WHERE num_terr = 'T01'; */
/* Question 14 */
/* SELECT * FROM TERRITOIRE WHERE latitude2 = 'S'; */
/* TP7*/
/* Question 1 */
/* SELECT * FROM DRAGON WHERE nom LIKE 'S%'; */
/* Question 2 */
/* SELECT numDragon1 || ' aime ' || numDragon2 || ' de manière : ' || force FROM Amour; */
/* Question 3 */
/* SELECT nom, char_length(nom) FROM TERRITOIRE; */
/* Question 4 */
/* SELECT lower(nom) FROM NOURRITURE; */
/* Question 5 */
/* SELECT substr(nom, 1, 3) FROM DRAGON; */
/* Question 6 */
/* SELECT to_char(current_date, 'YYYY-MM-DD'); */
/* Question 7 */
/* SELECT current_date -10 as "date il y a 10 jours"; */
/* Question 8 */
/* SELECT (CURRENT_DATE - '2004-01-12'::date) / 365 as age, round((current_date - '2004-01-12'::date) / 365::numeric, 3) as age_reel; */
/* Question 9 */
/* SELECT ceil((current_date-'2004-01-12'::date)/365::numeric); */
/* Question 10 */
/* SELECT trunc((current_date-'2004-01-12'::date)/365::numeric,1);
SELECT floor((current_date-'2004-01-12'::date)/365::numeric);*/
/* Question 11 */
/* SELECT round((current_date-date_naissance::date)/365::numeric,3) FROM DRAGON; */
/* Question 12 */
/* SELECT * FROM DRAGON WHERE round((current_date-date_naissance::date)/365::numeric,3)<3;*/
/* Question 13 */
/* SELECT * FROM REPAS WHERE to_char(date_repas, 'MON') = 'SEP'; */
/* TP8*/
UPDATE DRAGON SET num_terr = 'T03' WHERE numD = 'D0008';
/* Question 1 */
/* SELECT DRAGON.nom FROM DRAGON JOIN TERRITOIRE ON DRAGON.num_terr = TERRITOIRE.num_terr WHERE TERRITOIRE.latitude2 = 'S'; */
/* Question 2 */
/* SELECT DRAGON.nom FROM DRAGON JOIN AMOUR ON DRAGON.numD = AMOUR.numDragon1 WHERE AMOUR.force = 'un peu'; */
/* Question 3 */
/* SELECT DRAGON.nom FROM DRAGON JOIN REPAS ON DRAGON.numD = REPAS.numD JOIN NOURRITURE ON REPAS.numN = NOURRITURE.numN WHERE NOURRITURE.nom = 'Oeuf'; */
/* Question 4 */
/* SELECT TERRITOIRE.NOM, TERRITOIRE.longitude, TERRITOIRE.latitude1 FROM TERRITOIRE JOIN DRAGON ON TERRITOIRE.num_terr = DRAGON.num_terr JOIN REPAS ON DRAGON.numD = REPAS.numD JOIN NOURRITURE ON REPAS.numN = NOURRITURE.numN WHERE NOURRITURE.nom = 'Orange'; */
/* Question 5 */
/* SELECT REPAS.date_repas, REPAS.qte, NOURRITURE.nom, NOURRITURE.calories FROM REPAS JOIN NOURRITURE ON REPAS.numN = NOURRITURE.numN WHERE REPAS.numD = 'D0008' ORDER BY REPAS.date_repas; */
/* Question 6 */
/* SELECT NOURRITURE.numn, NOURRITURE.nom, TERRITOIRE.num_terr FROM NOURRITURE JOIN REPAS ON NOURRITURE.numn = REPAS.numn JOIN DRAGON ON REPAS.numd = DRAGON.numd JOIN TERRITOIRE ON DRAGON.num_terr = TERRITOIRE.num_terr ORDER BY TERRITOIRE.num_terr; */
/* Question 7 */
/* SELECT DRAGON.nom FROM DRAGON JOIN TERRITOIRE ON DRAGON.num_terr = TERRITOIRE.num_terr JOIN REPAS ON DRAGON.numD = REPAS.numD JOIN NOURRITURE ON REPAS.numN = NOURRITURE.numN WHERE DRAGON.crache_feu = 'O' AND TERRITOIRE.num_terr = 'T02' AND NOURRITURE.nom = 'Oeuf' OR NOURRITURE.nom = 'Orange' ; */
/* Question 8 */
/* SELECT AMOUR.force, DRAGON.nom FROM DRAGON JOIN AMOUR ON DRAGON.numD = AMOUR.numDragon1; */
/* Question 9 */
/* SELECT DRAGON.nom FROM DRAGON JOIN AMOUR ON DRAGON.numD = AMOUR.numDragon1 JOIN TERRITOIRE ON TERRITOIRE.num_terr = DRAGON.num_terr WHERE DRAGON.crache_feu='O' AND 85<TERRITOIRE.longitude AND TERRITOIRE.longitude<95; */
/* Question 10 */
/* SELECT DRAGON.nom FROM DRAGON JOIN AMOUR ON DRAGON.numD = AMOUR.numDragon1 WHERE AMOUR.force = 'passionement' AND DRAGON.en_amour='macho'; */
/* Question 11 */
/* SELECT NOURRITURE.nom FROM NOURRITURE JOIN REPAS ON NOURRITURE.numn = REPAS.numn JOIN DRAGON ON REPAS.numd = DRAGON.numd JOIN AMOUR ON DRAGON.numD = AMOUR.numDragon1 WHERE DRAGON.longeur>200 AND AMOUR.force = 'un peu'; */
/* Question 12 */
/* SELECT DRAGON.nom FROM DRAGON JOIN AMOUR ON DRAGON.numD = AMOUR.numDragon1 */
/* Question 13 */
/* SELECT DISTINCT DRAGON.nom FROM DRAGON JOIN REPAS ON DRAGON.numD = REPAS.numD JOIN NOURRITURE ON REPAS.numN = NOURRITURE.numN WHERE NOURRITURE.nom = 'Oeuf' AND DRAGON.numD NOT IN (SELECT DRAGON.numD FROM DRAGON JOIN REPAS ON DRAGON.numD = REPAS.numD JOIN NOURRITURE ON REPAS.numN = NOURRITURE.numN WHERE NOURRITURE.nom = 'Orange'); */
/* Question 14 */
/*
\d

@ -2,7 +2,7 @@ DROP TABLE CONTENIR;
DROP TABLE POTION; DROP TABLE POTION;
DROP TABLE OBTENIR; DROP TABLE OBTENIR;
DROP TABLE INGREDIENT; DROP TABLE INGREDIENT;
DROP TABLE SOURCESS; DROP TABLE SOURCES;
\! clear \! clear
@ -18,7 +18,7 @@ CREATE TABLE SOURCES(
CREATE TABLE INGREDIENT( CREATE TABLE INGREDIENT(
idIngredient char(4) PRIMARY KEY, idIngredient char(4) PRIMARY KEY,
designation varchar(50) NOT NULL UNIQUE, designation varchar(50) NOT NULL UNIQUE,
idSOURCESs char(4) REFERENCES SOURCES idSOURCES char(4) REFERENCES SOURCES
); );
CREATE TABLE POTION( CREATE TABLE POTION(
@ -34,7 +34,7 @@ CREATE TABLE CONTENIR(
); );
CREATE TABLE OBTENIR( CREATE TABLE OBTENIR(
transformation char(10), transformation char(10) DEFAULT 'Issues',
idIngredientBase char(4) REFERENCES INGREDIENT, idIngredientBase char(4) REFERENCES INGREDIENT,
idIngredientObtenue char(4) REFERENCES INGREDIENT idIngredientObtenue char(4) REFERENCES INGREDIENT
); );
@ -42,24 +42,30 @@ CREATE TABLE OBTENIR(
INSERT INTO SOURCES VALUES ('S001','Abeille sauvage','plaines verdoyantes','22/09/2021'); INSERT INTO SOURCES VALUES ('S001','Abeille sauvage','plaines verdoyantes','22/09/2021');
INSERT INTO SOURCES VALUES ('S002','Branchiflore','marais sombre','08/09/2021'); INSERT INTO SOURCES VALUES ('S002','Branchiflore','marais sombre','08/09/2021');
INSERT INTO SOURCES VALUES ('S003','Licorne','montagne dorée','16/04/2020'); INSERT INTO SOURCES VALUES ('S003','Licorne','montagne dorée','16/04/2020');
INSERT INTO SOURCES VALUES ('S004','Mandragore','forêt de l Est','2/10/2021'); INSERT INTO SOURCES VALUES ('S004','Mandragore','forêt de l Est','12/10/2021');
INSERT INTO SOURCES VALUES ('S005','Pin bleu','forêt de l Est','10/10/2021'); INSERT INTO SOURCES VALUES ('S005','Pin bleu','forêt de l Est','10/10/2021');
INSERT INTO SOURCES VALUES ('S006','Sirène','mer d opale','03/02/2021'); INSERT INTO SOURCES VALUES ('S006','Sirène','mer d opale','03/02/2021');
INSERT INTO SOURCES VALUES ('S007','Tortue géante','mer d opale','03/11/2022'); INSERT INTO SOURCES VALUES ('S007','Tortue géante','mer d opale','03/02/2021');
INSERT INTO INGREDIENT VALUES('I001', 'poudre de Mandragore', 'S004'); INSERT INTO INGREDIENT VALUES('I001', 'poudre de Mandragore', 'S004');
INSERT INTO INGREDIENT VALUES('I002', 'larmes de Sirene', 'S006'); INSERT INTO INGREDIENT VALUES('I002', 'larmes de Sirene', 'S006');
INSERT INTO INGREDIENT VALUES('I003', 'Miel', 'S001'); INSERT INTO INGREDIENT VALUES('I003', 'Miel', 'S001');
INSERT INTO INGREDIENT VALUES('I004', 'poils de Licorne', 'S003'); INSERT INTO INGREDIENT VALUES('I004', 'poils de Licorne', 'S003');
INSERT INTO INGREDIENT VALUES('I005', 'seve de Pin', 'S005'); INSERT INTO INGREDIENT VALUES('I005', 'seve de Pin', 'S005');
INSERT INTO INGREDIENT VALUES('I006', 'Branchiflore', 'S002'); INSERT INTO INGREDIENT VALUES('I006', 'graines de Branchiflore', 'S002');
INSERT INTO INGREDIENT VALUES('I007', 'ecailles de tortues', 'S007'); INSERT INTO INGREDIENT VALUES('I007', 'ecailles de tortues', 'S007');
INSERT INTO INGREDIENT VALUES('I008', 'racine de Mandragore', 'S002'); INSERT INTO INGREDIENT VALUES('I008', 'racine de Mandragore', 'S004');
INSERT INTO INGREDIENT VALUES('I009', 'rayon de miel d Abeille sauvage', 'S001'); INSERT INTO INGREDIENT VALUES('I009', 'rayon de miel d Abeille sauvage', 'S001');
INSERT INTO INGREDIENT VALUES('I010', 'Pins bleus', 'S005');
INSERT INTO INGREDIENT VALUES('I011', 'Branchiflores', 'S002');
INSERT INTO INGREDIENT VALUES('I012', 'Tortues géantes', 'S007');
INSERT INTO INGREDIENT VALUES('I013', 'Mandragore', 'S004');
INSERT INTO INGREDIENT VALUES('I014', 'Sirene', 'S006');
INSERT INTO INGREDIENT VALUES('I015', 'Licorne', 'S003');
INSERT INTO POTION VALUES ('P001','Invisibilité'); INSERT INTO POTION VALUES ('P001','Invisibilité');
INSERT INTO POTION VALUES ('P002','Force'); INSERT INTO POTION VALUES ('P002','Force');
INSERT INTO POTION VALUES ('P003');
INSERT INTO CONTENIR VALUES ('P001','I001',20,'g'); INSERT INTO CONTENIR VALUES ('P001','I001',20,'g');
INSERT INTO CONTENIR VALUES ('P001','I002',2,'u'); INSERT INTO CONTENIR VALUES ('P001','I002',2,'u');
@ -70,23 +76,35 @@ INSERT INTO CONTENIR VALUES ('P002','I006',3,'u');
INSERT INTO CONTENIR VALUES ('P002','I007',12,'g'); INSERT INTO CONTENIR VALUES ('P002','I007',12,'g');
INSERT INTO CONTENIR VALUES ('P002','I008',1,'u'); INSERT INTO CONTENIR VALUES ('P002','I008',1,'u');
INSERT INTO OBTENIR VALUES ('I008','I001','Broyage'); INSERT INTO OBTENIR VALUES ('Broyage', 'I008','I001');
INSERT INTO OBTENIR VALUES ('I003','I009','Extraction'); INSERT INTO OBTENIR VALUES ('Extraction', 'I008', 'I003');
INSERT INTO OBTENIR VALUES (NULL, 'I013', 'I008');
INSERT INTO OBTENIR VALUES (NULL, 'I014', 'I002');
INSERT INTO OBTENIR VALUES (NULL, 'I015', 'I004');
INSERT INTO OBTENIR VALUES (NULL, 'I010', 'I005');
INSERT INTO OBTENIR VALUES (NULL, 'I011', 'I006');
INSERT INTO OBTENIR VALUES (NULL, 'I012', 'I007');
SELECT * FROM CONTENIR; SELECT * FROM CONTENIR;
SELECT * FROM POTION; SELECT * FROM POTION;
SELECT * FROM OBTENIR; SELECT * FROM OBTENIR;
SELECT * FROM INGREDIENT; SELECT * FROM INGREDIENT;
SELECT * FROM SOURCESS; SELECT * FROM SOURCES;
/* Question 3 */ /* Question 3 */
/* SELECT * FROM POTION ORDER BY effet; */ /* SELECT * FROM POTION ORDER BY effet; */
/* Question 4 */ /* Question 4 */
/* SELECT DISTINCT lieu FROM SOURCESS; */ /* SELECT DISTINCT lieu FROM SOURCES; */
/* Question 5 */ /* Question 5 */
/* */ /* */
SELECT DISTINCT lieu FROM Source JOIN Ingredient ON Source.idSource=Ingredient.idSource WHERE EXISTS(SELECT idSource from Ingredient WHERE Source.idSource = Ingredient.idSource);
SELECT idIngredient2, transformation FROM Transformation WHERE idIngredient='I009';
SELECT idSource, nom FROM Source WHERE (current_date-dateCollecte > 45);
SELECT round(quantite, 2) || ' ' || upper(unite) || ' ' || idIngredient AS tkt FROM Contenir WHERE idPotion='P001';
SELECT idIngredient, designation FROM Ingredient WHERE designation LIKE '%Poudre%';
\d \d
Loading…
Cancel
Save