From 13ed0848d710fdd7f151b8edaced8da0beef708f Mon Sep 17 00:00:00 2001 From: "antoine.perederii" Date: Tue, 13 Dec 2022 19:47:32 +0100 Subject: [PATCH] modif des tp de BDD --- BDD/tp/tp3/tp3.sql | 113 +++++++++++--------------- BDD/tp/tp3/tp3f.sql | 102 ------------------------ BDD/tp/tp5/tp5.sql | 29 +++---- BDD/tp/tp6/tp6.sql | 33 +++++++- BDD/tp/tp7/tp7.sql | 85 ++++---------------- BDD/tp/tp8/tp8.sql | 114 +++------------------------ BDD/tp/tpAlchimiste/tpAlchimiste.sql | 7 +- 7 files changed, 127 insertions(+), 356 deletions(-) delete mode 100755 BDD/tp/tp3/tp3f.sql diff --git a/BDD/tp/tp3/tp3.sql b/BDD/tp/tp3/tp3.sql index 3931214..b0e70e4 100755 --- a/BDD/tp/tp3/tp3.sql +++ b/BDD/tp/tp3/tp3.sql @@ -1,86 +1,68 @@ -DROP TABLE IF EXISTS REPAS; -DROP TABLE IF EXISTS NOURRITURE; -DROP TABLE IF EXISTS AMOUR; -DROP TABLE IF EXISTS DRAGON; -DROP TABLE IF EXISTS TERRITOIRE; +DROP TABLE REPAS; +DROP TABLE AMOUR; +DROP TABLE DRAGON; +DROP TABLE NOURRITURE; +DROP TABLE TERRITOIRE; \! clear CREATE TABLE TERRITOIRE( - num_terr char(3) NOT NULL 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 = 'N' OR latitude2 = 'S') + 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( - num char(5) NOT NULL PRIMARY KEY, - nom varchar(30) UNIQUE, - longueur numeric NOT NULL CHECK (longueur > 0), - sexe char(1) NOT NULL CHECK (sexe = 'F' OR sexe = 'M'), - nb_ecailles numeric NOT NULL CHECK (nb_ecailles >= 0), - date_naissance date NOT NULL, - en_amour varchar(20) CHECK (en_amour = 'macho' 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, - CHECK (sexe = 1 AND en_amour = 'macho' OR sexe = 0 AND en_amour != 'macho') + 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( - num char(5) PRIMARY KEY, - nom varchar(30) NOT NULL UNIQUE, - calories numeric NOT NULL CHECK(calories > 0) + 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 = 'pasionnement' OR force = 'a la folie'), - num_dragon1 char(5) REFERENCES DRAGON, - num_dragon2 char(5) REFERENCES DRAGON, - PRIMARY KEY (num_dragon1, num_dragon2) +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( - qte numeric CHECK(qte > 0), - date_repas date, - num_dragon char(5) REFERENCES DRAGON, - num_nourr char(5) REFERENCES NOURRITURE, - PRIMARY KEY (num_dragon, num_nourr) + qte numeric NOT NULL CHECK (qte >0), + date_repas date, + 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 DRAGON VALUES('d0001', 'Solong', '173', 'M', '1481', '25/02/2012', 'timide', 'O', 't01'); - -INSERT INTO NOURRITURE VALUES('P0001','pomme',7); - -INSERT INTO AMOUR VALUES(NULL, 'D0001', 'D0002'); - -INSERT INTO REPAS VALUES(1000,'10/09/2021','D0001','P0002'); - -INSERT INTO - - -TRUNCATE TABLE TERRITOIRE, DRAGON, NOURRITURE, AMOUR, REPAS; -*/ -INSERT INTO DRAGON VALUES('d0001', 'Solong', '173', 'M', '1481', '25/02/2012', 'timide', 'O', 't01'); -INSERT INTO TERRITOIRE VALUES('T01', 'terre brûlées', 92, 40, 'S'); -INSERT INTO AMOUR VALUES - - -TRUNCATE TABLE TERRITOIRE, DRAGON, NOURRITURE, AMOUR, REPAS; INSERT INTO TERRITOIRE VALUES ('T01','terres_brulees',92,42,'S'); INSERT INTO TERRITOIRE VALUES ('T02','terre_des_fleurs',98,48,'S'); INSERT INTO TERRITOIRE VALUES ('T03','terre_des_neiges',100,8,'N'); -INSERT INTO DRAGON VALUES ('D0001','Smeagol',152,1,1857,'14/06/1985','macho','O','T01'); -INSERT INTO DRAGON VALUES ('D0002','Birdurh',258,1,4787,'05/05/1989','timide','N','T01'); -INSERT INTO DRAGON VALUES ('D0003','Negueth',128,1,1587,'08/09/2018','sincere','O','T02'); -INSERT INTO DRAGON VALUES ('D0004','Miss Toc',183,1,2781,'04/07/2020','volage',NULL,'T01'); -INSERT INTO DRAGON VALUES ('D0005','Bolong',213,1,754,'06/05/2010','macho','N','T01'); -INSERT INTO DRAGON VALUES ('D0006','Miloch',83,1,718,'29/04/2015','timide','O','T02'); -INSERT INTO DRAGON VALUES ('D0007','Nessie',168,1,1721,'12/12/2000','macho','O','T02'); -INSERT INTO DRAGON VALUES ('D0008','Tarak',123,0,851,'15/04/2009','timide','N','T01'); -INSERT INTO DRAGON VALUES ('D0009','Solong',173,1,1481,'04/08/2021','timide',NULL,'T01'); +INSERT INTO DRAGON VALUES ('D0001','Smeagol',152,'M',1857,'14/06/1985','macho','O','T02'); +INSERT INTO DRAGON VALUES ('D0002','Birdurh',258,'M',4787,'05/05/1989','timide','N','T01'); +INSERT INTO DRAGON VALUES ('D0003','Negueth',128,'M',1587,'08/09/2018','sincere','O','T02'); +INSERT INTO DRAGON VALUES ('D0004','Miss Toc',183,'M',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/2000','macho','O','T02'); +INSERT INTO DRAGON VALUES ('D0008','Tarak',123,'F',851,'15/04/2009','timide','N','T01'); +INSERT INTO DRAGON VALUES ('D0009','Solong',173,'M',1481,'04/08/2021','timide',NULL,'T01'); INSERT INTO NOURRITURE VALUES ('P0001','pomme',7); @@ -117,5 +99,4 @@ SELECT * FROM DRAGON; SELECT * FROM NOURRITURE; SELECT * FROM AMOUR; SELECT * FROM REPAS; - \d \ No newline at end of file diff --git a/BDD/tp/tp3/tp3f.sql b/BDD/tp/tp3/tp3f.sql deleted file mode 100755 index b0e70e4..0000000 --- a/BDD/tp/tp3/tp3f.sql +++ /dev/null @@ -1,102 +0,0 @@ -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( - qte numeric NOT NULL CHECK (qte >0), - date_repas date, - numD char(5) REFERENCES DRAGON, - numN char(5) REFERENCES NOURRITURE, - PRIMARY KEY (numD,numN) -); - -INSERT INTO TERRITOIRE VALUES ('T01','terres_brulees',92,42,'S'); -INSERT INTO TERRITOIRE VALUES ('T02','terre_des_fleurs',98,48,'S'); -INSERT INTO TERRITOIRE VALUES ('T03','terre_des_neiges',100,8,'N'); - - -INSERT INTO DRAGON VALUES ('D0001','Smeagol',152,'M',1857,'14/06/1985','macho','O','T02'); -INSERT INTO DRAGON VALUES ('D0002','Birdurh',258,'M',4787,'05/05/1989','timide','N','T01'); -INSERT INTO DRAGON VALUES ('D0003','Negueth',128,'M',1587,'08/09/2018','sincere','O','T02'); -INSERT INTO DRAGON VALUES ('D0004','Miss Toc',183,'M',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/2000','macho','O','T02'); -INSERT INTO DRAGON VALUES ('D0008','Tarak',123,'F',851,'15/04/2009','timide','N','T01'); -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','cacahuete',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 (1000,'10/09/2021','D0001','P0002'); -INSERT INTO REPAS VALUES (16,'10/09/2021','D0001','P0001'); -INSERT INTO REPAS VALUES (4,'11/09/2021','D0005','P0004'); -INSERT INTO REPAS VALUES (6,'10/03/2021','D0003','P0003'); -INSERT INTO REPAS VALUES (1,'11/09/2021','D0003','P0004'); -INSERT INTO REPAS VALUES (53,'10/09/2021','D0006','P0005'); -INSERT INTO REPAS VALUES (100,'11/09/2021','D0006','P0002'); -INSERT INTO REPAS VALUES (20,'10/09/2021','D0007','P0006'); -INSERT INTO REPAS VALUES (10,'10/09/2021','D0008','P0001'); -INSERT INTO REPAS VALUES (10,'11/09/2021','D0008','P0003'); -INSERT INTO REPAS VALUES (6,'09/09/2021','D0009','P0004'); -INSERT INTO REPAS VALUES (1,'10/09/2021','D0009','P0006'); -INSERT INTO REPAS VALUES (2,'11/09/2021','D0009','P0003'); - -SELECT * FROM TERRITOIRE; -SELECT * FROM DRAGON; -SELECT * FROM NOURRITURE; -SELECT * FROM AMOUR; -SELECT * FROM REPAS; -\d \ No newline at end of file diff --git a/BDD/tp/tp5/tp5.sql b/BDD/tp/tp5/tp5.sql index c064bae..093cca0 100755 --- a/BDD/tp/tp5/tp5.sql +++ b/BDD/tp/tp5/tp5.sql @@ -13,6 +13,7 @@ CREATE TABLE TERRITOIRE( 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, @@ -96,46 +97,46 @@ SELECT * FROM AMOUR; SELECT * FROM REPAS; /* Question 1 */ -/* SELECT nom FROM DRAGON WHERE crache_feu = 'O'; */ +SELECT nom FROM DRAGON WHERE crache_feu = 'O'; /* Question 2 */ -/* SELECT nom FROM DRAGON WHERE crache_feu = 'O' AND en_amour = 'timide'; */ +SELECT nom FROM DRAGON WHERE crache_feu = 'O' AND sexe = 'M'; /* Question 3 */ -/* SELECT * FROM DRAGON WHERE sexe = 'F' ORDER BY longeur DESC; */ +SELECT * FROM DRAGON WHERE sexe = 'F' ORDER BY longeur DESC; /* Question 4 */ -/* SELECT longeur/nb_ecailles FROM DRAGON; */ +SELECT longeur/nb_ecailles FROM DRAGON; /* Question 5 */ -/* SELECT DISTINCT numDragon1 FROM AMOUR; */ +SELECT DISTINCT numDragon1 FROM AMOUR; /* Question 6 */ -/* SELECT numDragon1 FROM AMOUR WHERE numDragon2 = 'D0003'; */ +SELECT numDragon1 FROM AMOUR WHERE numDragon2 = 'D0003'; /* Question 7 */ -/* SELECT numDragon2 FROM AMOUR WHERE numDragon1 = 'D0005'; */ +SELECT numDragon2 FROM AMOUR WHERE numDragon1 = 'D0005'; /* Question 8 */ -/* SELECT numDragon1 FROM AMOUR WHERE force = 'un peu'; */ +SELECT numDragon1 FROM AMOUR WHERE force = 'un peu'; /* Question 9 */ -/* SELECT numDragon1, force, numDragon2 FROM AMOUR WHERE force = 'passionnement'; */ +SELECT numDragon1, force, numDragon2 FROM AMOUR WHERE force = 'passionnement'; /* Question 10 */ -/* SELECT numDragon1, force, numDragon2 FROM AMOUR WHERE force = 'a la folie'; */ +SELECT nom FROM NOURRITURE WHERE calories < 10; /* Question 11 */ -/* SELECT * FROM REPAS JOIN NOURRITURE ON REPAS.numN = NOURRITURE.numN WHERE NOURRITURE.nom = 'Oeuf'; */ +SELECT numD FROM REPAS JOIN NOURRITURE ON REPAS.numN = NOURRITURE.numN WHERE NOURRITURE.nom = 'Oeuf'; /* Question 12 */ -/* SELECT distinct(numD) FROM REPAS; */ +SELECT distinct(numD) FROM REPAS; /* Question 13 */ -/* SELECT * FROM DRAGON WHERE num_terr = 'T01'; */ +SELECT * FROM DRAGON WHERE num_terr = 'T01'; /* Question 14 */ -/* SELECT * FROM TERRITOIRE WHERE latitude2 = 'S'; */ +SELECT * FROM TERRITOIRE WHERE latitude2 = 'S'; \d \ No newline at end of file diff --git a/BDD/tp/tp6/tp6.sql b/BDD/tp/tp6/tp6.sql index 642f993..456b492 100755 --- a/BDD/tp/tp6/tp6.sql +++ b/BDD/tp/tp6/tp6.sql @@ -1,7 +1,7 @@ -\! clear; - DROP TABLE IF EXISTS Medecin, Patient, Consultation, Medicament, Laboratoire ,Posologie ,Fournir; +\! clear; + CREATE TABLE Medecin ( id_medecin numeric PRIMARY KEY, nom varchar NOT NULL, @@ -60,13 +60,40 @@ CREATE TABLE Fournir ( FOREIGN KEY (num_med) REFERENCES Medicament ); +/* Q3 */ SELECT * FROM Medecin ORDER BY nom, prenom ASC; +/* Q4 */ SELECT * FROM Patient WHERE age < 18 ORDER BY nom, prenom DESC; +/* Q5 */ SELECT Consultation.* FROM Consultation JOIN Posologie ON Consultation.num_cons = Posologie.num_cons WHERE soir IS NOT NULL; +/* Q6 */ SELECT Consultation.* FROM Consultation JOIN Posologie ON Consultation.num_cons = Posologie.num_cons WHERE matin > (midi + soir); -SELECT Laboratoire FROM +/* Q7 */ +SELECT * FROM Laboratoire WHERE pays = 'France'; + +/* Q8 */ +SELECT * FROM Laboratoire WHERE pays <> 'France' OR code_postal = '75000'; + +/* Q9 */ +SELECT * FROM Laboratoire WHERE pays <> 'France' AND code_postal = '75000'; + +/* Q10 */ +SELECT * FROM Medicament WHERE prix > 50; + +/* Q11 */ +SELECT * FROM Medicament WHERE prix* 1.1 > 50; + +/* Q12 */ +SELECT * FROM Medicament WHERE prix < 100 AND prix * 1.2 > 125; + +/* Q13 */ +SELECT * FROM Medicament WHERE prix < 100 OR prix * 1.2 > 125; + +/* Q14 */ +SELECT * FROM Medicament WHERE prix < 100 OR prix * 1.2 > 125 AND prix * 1.2 < 150; +\d diff --git a/BDD/tp/tp7/tp7.sql b/BDD/tp/tp7/tp7.sql index 2ed55c8..75d9d58 100755 --- a/BDD/tp/tp7/tp7.sql +++ b/BDD/tp/tp7/tp7.sql @@ -13,6 +13,7 @@ CREATE TABLE TERRITOIRE( 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, @@ -31,6 +32,7 @@ CREATE TABLE NOURRITURE( 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, @@ -89,99 +91,46 @@ INSERT INTO REPAS VALUES ('09/09/2021', 6, 'D0009', 'P0004'); INSERT INTO REPAS VALUES ('10/09/2021', 1, 'D0009', 'P0006'); INSERT INTO REPAS VALUES ('11/09/2021', 2, 'D0009', '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%'; */ +SELECT nom FROM DRAGON WHERE nom LIKE 'S%'; /* Question 2 */ -/* SELECT numDragon1 || ' aime ' || numDragon2 || ' de manière : ' || force FROM Amour; */ +SELECT numDragon1 || ' aime ' || numDragon2 || ' de manière : ' || force FROM Amour; /* Question 3 */ -/* SELECT nom, char_length(nom) FROM TERRITOIRE; */ +SELECT nom, char_length(nom) FROM TERRITOIRE; /* Question 4 */ -/* SELECT lower(nom) FROM NOURRITURE; */ +SELECT lower(nom) FROM NOURRITURE; /* Question 5 */ -/* SELECT substr(nom, 1, 3) FROM DRAGON; */ +SELECT substr(nom, 1, 3) FROM DRAGON; /* Question 6 */ -/* SELECT to_char(current_date, 'YYYY-MM-DD'); */ +SELECT to_char(current_date, 'YYYY-MM-DD'); /* Question 7 */ -/* SELECT current_date -10 as "date il y a 10 jours"; */ +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; */ +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); */ +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);*/ +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; */ +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 12 ne s'affiche pas mais fonctionne */ +SELECT * FROM DRAGON WHERE round((current_date-date_naissance::date)/365) < 3; /* Question 13 */ -/* SELECT * FROM REPAS WHERE to_char(date_repas, 'MON') = 'SEP'; */ - +SELECT * FROM REPAS WHERE to_char(date_repas, 'MON') = 'SEP'; \d \ No newline at end of file diff --git a/BDD/tp/tp8/tp8.sql b/BDD/tp/tp8/tp8.sql index 2b89b51..a0f6bee 100644 --- a/BDD/tp/tp8/tp8.sql +++ b/BDD/tp/tp8/tp8.sql @@ -96,136 +96,48 @@ 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'; */ +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'; */ +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'; */ +SELECT DRAGON.nom FROM DRAGON JOIN REPAS ON DRAGON.numD = REPAS.numD JOIN NOURRITURE ON REPAS.numN = NOURRITURE.numN WHERE NOURRITURE.nom = 'Oeuf' AND sexe = 'M'; /* 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'; */ +SELECT DISTINCT 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; */ +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; */ +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 REPAS.date_repas; /* 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' ; */ +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; */ +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 85200 AND AMOUR.force = 'un peu'; */ +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 aimant.nom, aime.nom FROM DRAGON aimant JOIN AMOUR ON aimant.numD = AMOUR.numDragon1 JOIN DRAGON AS aime ON AMOUR.numDragon2 = aime.numD; */ +SELECT aimant.nom, aime.nom FROM DRAGON aimant JOIN AMOUR ON aimant.numD = AMOUR.numDragon1 JOIN DRAGON AS aime ON AMOUR.numDragon2 = aime.numD; /* 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'); */ +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 */ /* */ diff --git a/BDD/tp/tpAlchimiste/tpAlchimiste.sql b/BDD/tp/tpAlchimiste/tpAlchimiste.sql index 154684d..b35710b 100755 --- a/BDD/tp/tpAlchimiste/tpAlchimiste.sql +++ b/BDD/tp/tpAlchimiste/tpAlchimiste.sql @@ -94,17 +94,20 @@ SELECT * FROM INGREDIENT; SELECT * FROM SOURCES; /* Question 3 */ -/* SELECT * FROM POTION ORDER BY effet; */ +SELECT * FROM POTION ORDER BY effet; /* Question 4 */ -/* SELECT DISTINCT lieu FROM SOURCES; */ +SELECT DISTINCT lieu FROM SOURCES; /* Question 5 */ /* */ + +SELECT * FROM Potion ORDER BY effet ASC; 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 \ No newline at end of file