From 8464e5b1814a4498c4cfaba32f3e3e4700ed6b59 Mon Sep 17 00:00:00 2001 From: "antoine.perederii" Date: Fri, 18 Nov 2022 15:15:25 +0100 Subject: [PATCH] ajout du tp 5-6-7 de BDD --- Algo/tp/tp8/Final/exe | Bin 0 -> 17352 bytes Algo/tp/tp8/Final/fichierMots.txt | 0 Algo/tp/tp8/Final/fichierNotes.txt | 0 Algo/tp/tp8/Final/testtp8f.c | 10 ++ Algo/tp/tp8/Final/tp8f.c | 134 +++++++++++++++++++++ Algo/tp/tp8/Final/tp8f.h | 11 ++ BDD/tp/tp5/tp5.sql | 14 +++ BDD/tp/tp6/tp6.sql | 72 +++++++++++ BDD/tp/tp7/tp7.sql | 187 +++++++++++++++++++++++++++++ 9 files changed, 428 insertions(+) create mode 100755 Algo/tp/tp8/Final/exe create mode 100644 Algo/tp/tp8/Final/fichierMots.txt create mode 100644 Algo/tp/tp8/Final/fichierNotes.txt create mode 100644 Algo/tp/tp8/Final/testtp8f.c create mode 100644 Algo/tp/tp8/Final/tp8f.c create mode 100644 Algo/tp/tp8/Final/tp8f.h create mode 100644 BDD/tp/tp6/tp6.sql create mode 100644 BDD/tp/tp7/tp7.sql diff --git a/Algo/tp/tp8/Final/exe b/Algo/tp/tp8/Final/exe new file mode 100755 index 0000000000000000000000000000000000000000..e143272ad47c90297cdf59e419325e64b9142396 GIT binary patch literal 17352 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 m-+$@);Mk?1KKPnc +#include + +int moyenne(void); + +void initialiser(char mot[], int n); +void placer(char mot1[], char c, char mot2[]); +void jeuPendu(void); + +void charger(char *tab[2]); +void afficher(char *tab[2]); \ No newline at end of file diff --git a/BDD/tp/tp5/tp5.sql b/BDD/tp/tp5/tp5.sql index 078a4f9..c064bae 100644 --- a/BDD/tp/tp5/tp5.sql +++ b/BDD/tp/tp5/tp5.sql @@ -124,4 +124,18 @@ SELECT * FROM REPAS; /* Question 10 */ /* SELECT numDragon1, force, numDragon2 FROM AMOUR WHERE force = 'a la folie'; */ + +/* 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'; */ + + \d \ No newline at end of file diff --git a/BDD/tp/tp6/tp6.sql b/BDD/tp/tp6/tp6.sql new file mode 100644 index 0000000..642f993 --- /dev/null +++ b/BDD/tp/tp6/tp6.sql @@ -0,0 +1,72 @@ +\! clear; + +DROP TABLE IF EXISTS Medecin, Patient, Consultation, Medicament, Laboratoire ,Posologie ,Fournir; + +CREATE TABLE Medecin ( + id_medecin numeric PRIMARY KEY, + nom varchar NOT NULL, + prenom varchar NOT NULL +); + +CREATE TABLE Patient ( + num_pat numeric PRIMARY KEY, + nom varchar NOT NULL, + prenom varchar NOT NULL, + age numeric CHECK (age is NULL OR age > 0) +); + +CREATE TABLE Consultation ( + num_cons varchar PRIMARY KEY CHECK (num_cons LIKE 'C%'), + date date, + heure time, + id_medecin numeric, + num_pat numeric, + FOREIGN KEY (id_medecin) REFERENCES Medecin, + FOREIGN KEY (num_pat) REFERENCES Patient +); + + +CREATE TABLE Medicament ( + num_med numeric PRIMARY KEY, + nom varchar NOT NULL UNIQUE, + prix numeric CHECK (prix > 0) +); + +CREATE TABLE Posologie ( + matin numeric CHECK (matin is NULL or matin > 0), + midi numeric CHECK (midi is NULL or midi > 0), + soir numeric CHECK (soir is NULL or soir > 0), + num_cons varchar, + num_med numeric, + PRIMARY KEY(num_cons, num_med), + FOREIGN KEY (num_med) REFERENCES Medicament, + FOREIGN KEY (num_cons) REFERENCES Consultation +); + +CREATE TABLE Laboratoire ( + num_lab numeric PRIMARY KEY, + nom varchar NOT NULL UNIQUE, + rue numeric, + code_postal numeric(5) CHECK ((code_postal IS NOT NULL) = (pays = 'France')), /*<=> (code_post IS NOT NULL AND pays IS 'France') OR (code_postal IS NULL AND Pays IS NOT 'France')*/ + ville varchar, + pays varchar DEFAULT ('France') +); + +CREATE TABLE Fournir ( + num_lab numeric, + num_med numeric, + PRIMARY KEY (num_lab, num_med), + FOREIGN KEY (num_lab) REFERENCES Laboratoire, + FOREIGN KEY (num_med) REFERENCES Medicament +); + +SELECT * FROM Medecin ORDER BY nom, prenom ASC; + +SELECT * FROM Patient WHERE age < 18 ORDER BY nom, prenom DESC; + +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 matin > (midi + soir); + +SELECT Laboratoire FROM + diff --git a/BDD/tp/tp7/tp7.sql b/BDD/tp/tp7/tp7.sql new file mode 100644 index 0000000..2ed55c8 --- /dev/null +++ b/BDD/tp/tp7/tp7.sql @@ -0,0 +1,187 @@ +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', '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', '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 ('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%'; */ + +/* 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'; */ + + +\d \ No newline at end of file