modif des tp de BDD

master
antoine.perederii 2 years ago
parent b89507d17b
commit 13ed0848d7

@ -1,86 +1,68 @@
DROP TABLE IF EXISTS REPAS; DROP TABLE REPAS;
DROP TABLE IF EXISTS NOURRITURE; DROP TABLE AMOUR;
DROP TABLE IF EXISTS AMOUR; DROP TABLE DRAGON;
DROP TABLE IF EXISTS DRAGON; DROP TABLE NOURRITURE;
DROP TABLE IF EXISTS TERRITOIRE; DROP TABLE TERRITOIRE;
\! clear \! clear
CREATE TABLE TERRITOIRE( CREATE TABLE TERRITOIRE(
num_terr char(3) NOT NULL PRIMARY KEY, num_terr char(3) PRIMARY KEY,
nom varchar(30) UNIQUE, nom varchar(30) UNIQUE,
longitude numeric NOT NULL CHECK (longitude <= 180 AND longitude >= -180), longitude numeric NOT NULL CHECK (longitude <= 180 AND longitude >= -180),
latitude1 numeric NOT NULL CHECK (latitude1 <= 90), latitude1 numeric NOT NULL CHECK (latitude1 <= 90),
latitude2 char(1) NOT NULL CHECK (latitude2 = 'N' OR latitude2 = 'S') latitude2 char(1) NOT NULL CHECK (latitude2 ='S' OR latitude2 ='N')
); );
CREATE TABLE DRAGON( CREATE TABLE DRAGON(
num char(5) NOT NULL PRIMARY KEY, numD char(5) PRIMARY KEY,
nom varchar(30) UNIQUE, nom varchar(30) UNIQUE,
longueur numeric NOT NULL CHECK (longueur > 0), longeur numeric NOT NULL CHECK (longeur > 0),
sexe char(1) NOT NULL CHECK (sexe ='F' OR sexe ='M'), sexe char(1) NOT NULL CHECK (sexe ='F' OR sexe ='M'),
nb_ecailles numeric NOT NULL CHECK (nb_ecailles >= 0), nb_ecailles numeric CHECK (nb_ecailles > 0),
date_naissance date NOT NULL, date_naissance date,
en_amour varchar(20) CHECK (en_amour = 'macho' OR en_amour = 'timide' OR en_amour = 'sincere' OR en_amour = 'volage'), 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'), crache_feu char(1) CHECK (crache_feu ='O' OR crache_feu ='N'),
num_terr char(4) REFERENCES TERRITOIRE, num_terr char(4) REFERENCES TERRITOIRE
CHECK (sexe = 1 AND en_amour = 'macho' OR sexe = 0 AND en_amour != 'macho')
); );
CREATE TABLE NOURRITURE( CREATE TABLE NOURRITURE(
num char(5) PRIMARY KEY, numN char(5)PRIMARY KEY,
nom varchar(30) NOT NULL UNIQUE, nom varchar(30) UNIQUE,
calories numeric NOT NULL CHECK (calories >0) calories numeric NOT NULL CHECK (calories >0)
); );
CREATE TABLE AMOUR ( CREATE TABLE AMOUR (
force varchar(20) CHECK (force = 'un peu' OR force = 'beaucoup' OR force = 'pasionnement' OR force = 'a la folie'), force varchar(20) CHECK (force='un peu' OR force='beaucoup' OR force='passionnement' OR force='a la folie'),
num_dragon1 char(5) REFERENCES DRAGON, numDragon1 char(5) REFERENCES DRAGON,
num_dragon2 char(5) REFERENCES DRAGON, numDragon2 char(5) REFERENCES DRAGON,
PRIMARY KEY (num_dragon1, num_dragon2) PRIMARY KEY (numDragon1,numDragon2)
); );
CREATE TABLE REPAS( CREATE TABLE REPAS(
qte numeric CHECK(qte > 0), qte numeric NOT NULL CHECK (qte >0),
date_repas date, date_repas date,
num_dragon char(5) REFERENCES DRAGON, numD char(5) REFERENCES DRAGON,
num_nourr char(5) REFERENCES NOURRITURE, numN char(5) REFERENCES NOURRITURE,
PRIMARY KEY (num_dragon, num_nourr) 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 ('T01','terres_brulees',92,42,'S');
INSERT INTO TERRITOIRE VALUES ('T02','terre_des_fleurs',98,48,'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 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 ('D0001','Smeagol',152,'M',1857,'14/06/1985','macho','O','T02');
INSERT INTO DRAGON VALUES ('D0002','Birdurh',258,1,4787,'05/05/1989','timide','N','T01'); INSERT INTO DRAGON VALUES ('D0002','Birdurh',258,'M',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 ('D0003','Negueth',128,'M',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 ('D0004','Miss Toc',183,'M',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 ('D0005','Bolong',213,'M',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 ('D0006','Miloch',83,'M',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 ('D0007','Nessie',168,'M',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 ('D0008','Tarak',123,'F',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 ('D0009','Solong',173,'M',1481,'04/08/2021','timide',NULL,'T01');
INSERT INTO NOURRITURE VALUES ('P0001','pomme',7); INSERT INTO NOURRITURE VALUES ('P0001','pomme',7);
@ -117,5 +99,4 @@ SELECT * FROM DRAGON;
SELECT * FROM NOURRITURE; SELECT * FROM NOURRITURE;
SELECT * FROM AMOUR; SELECT * FROM AMOUR;
SELECT * FROM REPAS; SELECT * FROM REPAS;
\d \d

@ -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

@ -13,6 +13,7 @@ CREATE TABLE TERRITOIRE(
latitude1 numeric NOT NULL CHECK (latitude1 <= 90), latitude1 numeric NOT NULL CHECK (latitude1 <= 90),
latitude2 char(1) NOT NULL CHECK (latitude2 ='S' OR latitude2 ='N') latitude2 char(1) NOT NULL CHECK (latitude2 ='S' OR latitude2 ='N')
); );
CREATE TABLE DRAGON( CREATE TABLE DRAGON(
numD char(5) PRIMARY KEY, numD char(5) PRIMARY KEY,
nom varchar(30) UNIQUE, nom varchar(30) UNIQUE,
@ -96,46 +97,46 @@ SELECT * FROM AMOUR;
SELECT * FROM REPAS; SELECT * FROM REPAS;
/* Question 1 */ /* Question 1 */
/* SELECT nom FROM DRAGON WHERE crache_feu = 'O'; */ SELECT nom FROM DRAGON WHERE crache_feu = 'O';
/* Question 2 */ /* 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 */ /* Question 3 */
/* SELECT * FROM DRAGON WHERE sexe = 'F' ORDER BY longeur DESC; */ SELECT * FROM DRAGON WHERE sexe = 'F' ORDER BY longeur DESC;
/* Question 4 */ /* Question 4 */
/* SELECT longeur/nb_ecailles FROM DRAGON; */ SELECT longeur/nb_ecailles FROM DRAGON;
/* Question 5 */ /* Question 5 */
/* SELECT DISTINCT numDragon1 FROM AMOUR; */ SELECT DISTINCT numDragon1 FROM AMOUR;
/* Question 6 */ /* Question 6 */
/* SELECT numDragon1 FROM AMOUR WHERE numDragon2 = 'D0003'; */ SELECT numDragon1 FROM AMOUR WHERE numDragon2 = 'D0003';
/* Question 7 */ /* Question 7 */
/* SELECT numDragon2 FROM AMOUR WHERE numDragon1 = 'D0005'; */ SELECT numDragon2 FROM AMOUR WHERE numDragon1 = 'D0005';
/* Question 8 */ /* Question 8 */
/* SELECT numDragon1 FROM AMOUR WHERE force = 'un peu'; */ SELECT numDragon1 FROM AMOUR WHERE force = 'un peu';
/* Question 9 */ /* Question 9 */
/* SELECT numDragon1, force, numDragon2 FROM AMOUR WHERE force = 'passionnement'; */ SELECT numDragon1, force, numDragon2 FROM AMOUR WHERE force = 'passionnement';
/* Question 10 */ /* Question 10 */
/* SELECT numDragon1, force, numDragon2 FROM AMOUR WHERE force = 'a la folie'; */ SELECT nom FROM NOURRITURE WHERE calories < 10;
/* Question 11 */ /* 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 */ /* Question 12 */
/* SELECT distinct(numD) FROM REPAS; */ SELECT distinct(numD) FROM REPAS;
/* Question 13 */ /* Question 13 */
/* SELECT * FROM DRAGON WHERE num_terr = 'T01'; */ SELECT * FROM DRAGON WHERE num_terr = 'T01';
/* Question 14 */ /* Question 14 */
/* SELECT * FROM TERRITOIRE WHERE latitude2 = 'S'; */ SELECT * FROM TERRITOIRE WHERE latitude2 = 'S';
\d \d

@ -1,7 +1,7 @@
\! clear;
DROP TABLE IF EXISTS Medecin, Patient, Consultation, Medicament, Laboratoire ,Posologie ,Fournir; DROP TABLE IF EXISTS Medecin, Patient, Consultation, Medicament, Laboratoire ,Posologie ,Fournir;
\! clear;
CREATE TABLE Medecin ( CREATE TABLE Medecin (
id_medecin numeric PRIMARY KEY, id_medecin numeric PRIMARY KEY,
nom varchar NOT NULL, nom varchar NOT NULL,
@ -60,13 +60,40 @@ CREATE TABLE Fournir (
FOREIGN KEY (num_med) REFERENCES Medicament FOREIGN KEY (num_med) REFERENCES Medicament
); );
/* Q3 */
SELECT * FROM Medecin ORDER BY nom, prenom ASC; SELECT * FROM Medecin ORDER BY nom, prenom ASC;
/* Q4 */
SELECT * FROM Patient WHERE age < 18 ORDER BY nom, prenom DESC; 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; 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 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

@ -13,6 +13,7 @@ CREATE TABLE TERRITOIRE(
latitude1 numeric NOT NULL CHECK (latitude1 <= 90), latitude1 numeric NOT NULL CHECK (latitude1 <= 90),
latitude2 char(1) NOT NULL CHECK (latitude2 ='S' OR latitude2 ='N') latitude2 char(1) NOT NULL CHECK (latitude2 ='S' OR latitude2 ='N')
); );
CREATE TABLE DRAGON( CREATE TABLE DRAGON(
numD char(5) PRIMARY KEY, numD char(5) PRIMARY KEY,
nom varchar(30) UNIQUE, nom varchar(30) UNIQUE,
@ -31,6 +32,7 @@ CREATE TABLE NOURRITURE(
calories numeric NOT NULL CHECK (calories >0) calories numeric NOT NULL CHECK (calories >0)
); );
CREATE TABLE AMOUR ( CREATE TABLE AMOUR (
force varchar(20) CHECK (force='un peu' OR force='beaucoup' OR force='passionnement' OR force='a la folie'), force varchar(20) CHECK (force='un peu' OR force='beaucoup' OR force='passionnement' OR force='a la folie'),
numDragon1 char(5) REFERENCES DRAGON, 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 ('10/09/2021', 1, 'D0009', 'P0006');
INSERT INTO REPAS VALUES ('11/09/2021', 2, 'D0009', 'P0003'); 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*/ /* TP7*/
/* Question 1 */ /* Question 1 */
/* SELECT * FROM DRAGON WHERE nom LIKE 'S%'; */ SELECT nom FROM DRAGON WHERE nom LIKE 'S%';
/* Question 2 */ /* Question 2 */
/* SELECT numDragon1 || ' aime ' || numDragon2 || ' de manière : ' || force FROM Amour; */ SELECT numDragon1 || ' aime ' || numDragon2 || ' de manière : ' || force FROM Amour;
/* Question 3 */ /* Question 3 */
/* SELECT nom, char_length(nom) FROM TERRITOIRE; */ SELECT nom, char_length(nom) FROM TERRITOIRE;
/* Question 4 */ /* Question 4 */
/* SELECT lower(nom) FROM NOURRITURE; */ SELECT lower(nom) FROM NOURRITURE;
/* Question 5 */ /* Question 5 */
/* SELECT substr(nom, 1, 3) FROM DRAGON; */ SELECT substr(nom, 1, 3) FROM DRAGON;
/* Question 6 */ /* Question 6 */
/* SELECT to_char(current_date, 'YYYY-MM-DD'); */ SELECT to_char(current_date, 'YYYY-MM-DD');
/* Question 7 */ /* 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 */ /* 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 */ /* Question 9 */
/* SELECT ceil((current_date-'2004-01-12'::date)/365::numeric); */ SELECT ceil((current_date-'2004-01-12'::date)/365::numeric);
/* Question 10 */ /* Question 10 */
/* SELECT trunc((current_date-'2004-01-12'::date)/365::numeric,1); SELECT trunc((current_date-'2004-01-12'::date)/365::numeric,1);
SELECT floor((current_date-'2004-01-12'::date)/365::numeric);*/ SELECT floor((current_date-'2004-01-12'::date)/365::numeric);
/* Question 11 */ /* 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 */ /* Question 12 ne s'affiche pas mais fonctionne */
/* SELECT * FROM DRAGON WHERE round((current_date-date_naissance::date)/365::numeric,3)<3; SELECT * FROM DRAGON WHERE round((current_date-date_naissance::date)/365) < 3;
/* Question 13 */ /* Question 13 */
/* SELECT * FROM REPAS WHERE to_char(date_repas, 'MON') = 'SEP'; */ SELECT * FROM REPAS WHERE to_char(date_repas, 'MON') = 'SEP';
\d \d

@ -96,136 +96,48 @@ SELECT * FROM NOURRITURE;
SELECT * FROM AMOUR; SELECT * FROM AMOUR;
SELECT * FROM REPAS; 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*/ /* TP8*/
UPDATE DRAGON SET num_terr = 'T03' WHERE numD = 'D0008'; UPDATE DRAGON SET num_terr = 'T03' WHERE numD = 'D0008';
/* Question 1 */ /* 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 */ /* 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 */ /* 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 */ /* 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 */ /* 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 */ /* 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 */ /* 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 */ /* 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 */ /* 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; */ 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 */ /* Question 10 */
/* SELECT DRAGON.nom FROM DRAGON JOIN AMOUR ON DRAGON.numD = AMOUR.numDragon1 WHERE AMOUR.force = 'passionement' AND DRAGON.en_amour='macho'; */ SELECT DRAGON.nom FROM DRAGON JOIN AMOUR ON DRAGON.numD = AMOUR.numDragon1 WHERE AMOUR.force = 'passionement' AND DRAGON.en_amour='macho';
/* Question 11 */ /* 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'; */ 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 */ /* 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 */ /* 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 */ /* Question 14 */
/* */ /* */

@ -94,17 +94,20 @@ SELECT * FROM INGREDIENT;
SELECT * FROM SOURCES; 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 SOURCES; */ SELECT DISTINCT lieu FROM SOURCES;
/* Question 5 */ /* 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 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 idIngredient2, transformation FROM Transformation WHERE idIngredient='I009';
SELECT idSource, nom FROM Source WHERE (current_date-dateCollecte > 45); 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 round(quantite, 2) || ' ' || upper(unite) || ' ' || idIngredient AS tkt FROM Contenir WHERE idPotion='P001';
SELECT idIngredient, designation FROM Ingredient WHERE designation LIKE '%Poudre%'; SELECT idIngredient, designation FROM Ingredient WHERE designation LIKE '%Poudre%';
\d \d
Loading…
Cancel
Save