antoine.perederii 2 years ago
commit a1b68aa5d6

Binary file not shown.

@ -2,14 +2,22 @@
void testExercice1()
{
int n = 4;
int result = nbSegments(n);
printf("Il y a %d segments\n", result);
int n;
while(1)
{
printf("Donnez le nombre de segments : ");
scanf("%d", &n);
if(n == 0)
break;
int result = nbSegments(n);
printf("Il y a %d segments\n", result);
}
}
void testExercice2Nb()
{
int tab[10] = {0, 2, 3, 4, 5, 8, 2, 25, 0, 2}, tab2[10] = {1, 2, 3, 4, 5, 8, 2, 25, 0, 2};
int tab3[10] = {0, 2, 3, 4, 5, 8, 2, 25, 0, 2};
int n = 10, result, val = 2;
result = sommeNentierT(tab, n);
printf("La somme des entiers est %d\n", result);
@ -32,7 +40,7 @@ void testExercice2Nb()
result = rechercheValMaxT(tab, n);
printf("La valeur maximale est %d\n", result);
printf("====================================\n");
result = compare2T(tab, tab2, n);
result = compare2T(tab, tab3, n);
printf("Les tableaux sont %s\n", result ? "identiques" : "different");
printf("====================================\n");
}
@ -40,31 +48,56 @@ void testExercice2Nb()
void testExercice2Chaine()
{
char tab1[10]="bonjour", tab2[10]="aurevoir";
char tab1[10]="Bonjour", tab2[10]="aurevoir";
int n = 10, result;
char result2[10];
char result2[20];
result = longueurChaine(tab1);
printf("La longueur de la chaine est %d\n", result);
printf("====================================\n");
result = copieChaine(tab1, tab2);
printf("La chaine copiee est %s\n", tab2);
printf("La chaine copiée est %s\n", tab2);
printf("====================================\n");
result = concateneChaine(tab1, tab2, result2);
printf("La chaine concatenee est %s\n", result2);
printf("====================================\n");
result = compareChaine(tab1, tab2);
printf("Les chaines sont %s\n", result ? "identiques" : "different");
if(result == 0)
printf("Les chaines sont differentes\n");
else
printf("Les chaines sont identiques\n");
printf("====================================\n");
result = mirroirChaine(tab1, result2);
printf("La chaine mirroir est %s\n", result2);
printf("====================================\n");
}
void testExercice3Jeu()
{
int n, i = 0, result;
bool tab[100];
char rep;
printf("Donnez le nombre de cases : ");
scanf("%d", &n);
printf("Y-a-t-il des pions sur les %d cases ? (o/n) :", n);
scanf("%*c%c", &rep);
while(rep == 'o' || rep == 'O' && 0 < i < n)
{
printf("Donnez les numéro de la case (0-%d) : ", n);
scanf("%d", &i);
tab[i]=true;
printf("Y-a-t-il un pion sur la case (%d/%d) ? (o/n) : ", i, n);
scanf("%*c%c", &rep);
}
result = baguenaudier(n, tab);
printf("Le pion %d est le dernier\n", result);
}
int main(void)
{
//testExercice1();
//testExercice2Nb();
testExercice2Chaine();
// testExercice1();
// testExercice2Nb();
// testExercice2Chaine();
testExercice3Jeu();
return 1;
}

@ -8,7 +8,7 @@ int nbSegments(int n)
return (n-1) + nbSegments(n - 1);
}
/* Exercice 2 */
/* Exercice 2-a */
int sommeNentierT(int tab[], int n)
{
@ -66,7 +66,7 @@ int rechercheValMaxT(int tab[], int n)
return max;
}
int compare2T(int tab1[], int tab2[], int n) //a revoir
int compare2T(int tab1[], int tab2[], int n)
{
if (n == 1)
return tab1[0] == tab2[0];
@ -75,6 +75,8 @@ int compare2T(int tab1[], int tab2[], int n) //a revoir
return compare2T(tab1+1, tab2+1, n-1);
}
// Exercice 2-b
int longueurChaine(char chaine[])
{
if (chaine[0] == '\0')
@ -85,12 +87,15 @@ int longueurChaine(char chaine[])
int copieChaine(char chaine1[], char chaine2[])
{
if (chaine1[0] == '\0')
{
chaine2[0] = '\0';
return 0;
}
chaine2[0] = chaine1[0];
return 1 + copieChaine(chaine1+1, chaine2+1);
}
int concateneChaine(char chaine1[], char chaine2[], char chaine3[])
int concateneChaine(char chaine1[], char chaine2[], char chaine3[]) //a revoir
{
if (chaine1[0] == '\0')
return copieChaine(chaine2, chaine3);
@ -98,12 +103,12 @@ int concateneChaine(char chaine1[], char chaine2[], char chaine3[])
return 1 + concateneChaine(chaine1+1, chaine2, chaine3+1);
}
int compareChaine(char chaine1[], char chaine2[])
int compareChaine(char chaine1[], char chaine2[]) //a revoir
{
if (chaine1[0] == '\0' && chaine2[0] == '\0')
return 1;
if (chaine1[0] == chaine2[0])
return compareChaine(chaine1+1, chaine2+1);
return 1*(compareChaine(chaine1+1, chaine2+1));
return 0;
}
@ -117,5 +122,18 @@ int mirroirChaine(char chaine1[], char chaine2[])
/* Exercice 3 */
int baguenaudier(int n, bool tab[])
{
if (n == 1)
return 1;
if (tab[n] == 0)
{
tab[n] = 1;
return baguenaudier(n-1, tab);
}
tab[n] = 0;
return baguenaudier(n-1, tab);
}
/* Pour vider n, il faut vider n-2, on remet les n-2 en vide les n-2 de ce n */
/* Pour remplir n, il faut remplir n-2, on remplis n-1 vider n-2 et on remplie n-1 */

@ -1,6 +1,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
int nbSegments(int n);
int sommeNentierT(int tab[], int n);
@ -15,4 +16,6 @@ int copieChaine(char chaine1[], char chaine2[]);
int concateneChaine(char chaine1[], char chaine2[], char chaine3[]);
int compareChaine(char chaine1[], char chaine2[]);
int mirroirChaine(char chaine1[], char chaine2[]);
int baguenaudier(int n, bool tab[]);
void testExercice3();

@ -78,7 +78,7 @@ void sauvTbin(Mat *tab[], int nb)
fprintf(flot, "%d\n", &nb);
for(i = 0; i < nb; i++)
fwrite(tab[i], sizeof(Mat), 1, flot);
fclose(flot);
fclose(flot);
}
int rechdich(char *code, Mat **tmat, int nbmat, int *trouve)

@ -60,40 +60,82 @@ CREATE TABLE Fournir (
FOREIGN KEY (num_med) REFERENCES Medicament
);
/* Q3 */
INSERT INTO Medecin VALUES (1, 'DUPONT', 'Jean');
INSERT INTO Medecin VALUES (2, 'DURAND', 'Pierre');
INSERT INTO Medecin VALUES (3, 'DUPOND', 'Paul');
INSERT INTO Medecin VALUES (4, 'DUPUIS', 'Jacques');
INSERT INTO Medecin VALUES (5, 'DUPONT', 'Pierre');
INSERT INTO Patient VALUES(1, 'Bertrand', 'François', 25);
INSERT INTO Patient VALUES(2, 'Diner', 'Jinette', 18);
INSERT INTO Patient VALUES(3, 'Bouhours', 'Patrick', 30);
INSERT INTO Patient VALUES(4, 'Framabour', 'Gerard', 28);
INSERT INTO Patient VALUES(5, 'Delobel', 'Matthieu', 50);
INSERT INTO Patient VALUES(6, 'Dufour', 'Jean', 15);
INSERT INTO Patient VALUES(7, 'Dufour', 'Pierre', 12);
INSERT INTO Consultation VALUES('C1', '2015-01-01', '10:00', 1, 1);
INSERT INTO Consultation VALUES('C2', '2015-01-01', '10:00', 1, 2);
INSERT INTO Consultation VALUES('C3', '2015-01-01', '10:00', 2, 3);
INSERT INTO Consultation VALUES('C4', '2015-01-01', '10:00', 3, 4);
INSERT INTO Consultation VALUES('C5', '2015-01-01', '10:00', 2, 5);
INSERT INTO Medicament VALUES(1, 'Aspirine', 10);
INSERT INTO Medicament VALUES(2, 'Paracétamol', 25);
INSERT INTO Medicament VALUES(6, 'Antistase', 48);
INSERT INTO Medicament VALUES(7, 'Marimosane', 98);
INSERT INTO Medicament VALUES(3, 'Doliprane', 115);
INSERT INTO Medicament VALUES(4, 'Maxilase', 100);
INSERT INTO Medicament VALUES(5, 'Amoxiciline', 125);
INSERT INTO Posologie VALUES(1, 1, 1, 'C1', 1);
INSERT INTO Posologie VALUES(2, 2, 0, 'C2', 2);
INSERT INTO Posologie VALUES(3, 3, 3, 'C3', 3);
INSERT INTO Posologie VALUES(4, 4, 4, 'C4', 4);
INSERT INTO Posologie VALUES(15, 5, 5, 'C5', 5);
INSERT INTO Laboratoire VALUES(1, 'Laboratoire A', 1, 75001, 'Paris', 'France');
INSERT INTO Laboratoire VALUES(2, 'Laboratoire B', 2, 75002, 'Paris', 'France');
INSERT INTO Laboratoire VALUES(3, 'Laboratoire C', 3, NULL, 'Paris', 'France');
INSERT INTO Laboratoire VALUES(4, 'Laboratoire D', 4, 69400, 'Lyon', 'France');
INSERT INTO Laboratoire VALUES(5, 'Laboratoire E', 5, 15000, 'Aurillac', 'France');
INSERT INTO Laboratoire VALUES(6, 'Laboratoire F', 6, NULL, 'Barcelone', 'Espagne');
INSERT INTO Laboratoire VALUES(7, 'Laboratoire G', 7, 63500, 'Bioude', 'France');
INSERT INTO Laboratoire VALUES(8, 'Laboratoire RU', 9, NULL, 'Londres', 'Royaume-Unis');
-- Question 3
SELECT * FROM Medecin ORDER BY nom, prenom ASC;
/* Q4 */
-- Question 4
SELECT * FROM Patient WHERE age < 18 ORDER BY nom, prenom DESC;
/* Q5 */
-- Question 5
SELECT Consultation.* FROM Consultation JOIN Posologie ON Consultation.num_cons = Posologie.num_cons WHERE soir IS NOT NULL;
/* Q6 */
-- Question 6
SELECT Consultation.* FROM Consultation JOIN Posologie ON Consultation.num_cons = Posologie.num_cons WHERE matin > (midi + soir);
/* Q7 */
SELECT * FROM Laboratoire WHERE pays = 'France';
-- Question 7
SELECT * FROM Laboratoire WHERE pays = 'France' AND code_postal IS NOT NULL;
/* Q8 */
SELECT * FROM Laboratoire WHERE pays <> 'France' OR code_postal = '75000';
-- Question 8-9 a revoir c'est les meme question ???!!!
-- Requette sql pour afficher les laboratoires qui ne sont pas en France ou dont le code postal ne commence pas par 63
SELECT * FROM Laboratoire WHERE pays != 'France' OR code_postal NOT LIKE '63%';
/* Q9 */
SELECT * FROM Laboratoire WHERE pays <> 'France' AND code_postal = '75000';
/* Q10 */
-- Question 10
SELECT * FROM Medicament WHERE prix > 50;
/* Q11 */
SELECT * FROM Medicament WHERE prix* 1.1 > 50;
-- Question 11
SELECT * FROM Medicament WHERE prix * 1.1 > 50;
-- Question 12 à revoir c'est pas possible comme le dit la question !!
SELECT * FROM Medicament WHERE prix < 100 AND prix*1.2 > 125;
/* Q12 */
SELECT * FROM Medicament WHERE prix < 100 AND prix * 1.2 > 125;
-- Question 13
/* 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;
-- Question 14 is good ??
SELECT DISTINCT pays FROM Laboratoire;
\d

@ -54,7 +54,7 @@ INSERT INTO DRAGON VALUES('D0001', 'Smeagol', 152, 'M', 1857,'14/06/1985', 'mach
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 ('D0005', 'Bolong', 213,'M',754,'06/05/2010', 'macho', 'O', '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');
@ -118,8 +118,8 @@ SELECT REPAS.date_repas, REPAS.qte, NOURRITURE.nom, NOURRITURE.calories FROM REP
/* 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 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' ;
/* Question 7 fonctionne pas !!! pas de territoire !!??*/
SELECT DISTINCT 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;
@ -128,20 +128,19 @@ SELECT AMOUR.force, DRAGON.nom FROM DRAGON JOIN AMOUR ON DRAGON.numD = AMOUR.num
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';
SELECT DRAGON.nom FROM DRAGON JOIN AMOUR ON DRAGON.numD = AMOUR.numDragon1 WHERE AMOUR.force = 'passionnement' 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 11 Ne fonctionne pas !!!! */
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;
/* Question 12 Je sais pas, je comprend pas !!! */
SELECT aimant.nom || ' est en couple avec ' || aime.nom FROM DRAGON AS 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');
/* Question 14 */
/* */
/* Question 14 */
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');
\d

@ -90,153 +90,58 @@ 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');
/* TP9 */
/* 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';
INSERT INTO AMOUR VALUES('un peu', 'D0008', 'D0002');
/* 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'; */
SELECT Dragon.nom FROM Dragon WHERE num NOT IN (SELECT num_dragon FROM Repas WHERE num_nourriture = (SELECT num FROM Nourriture WHERE nom = 'Pomme'));
/* 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 2
SELECT Dragon.nom FROM Dragon WHERE num NOT IN (SELECT num_dragon1 FROM Amour);
/* 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 3
SELECT Dragon.nom FROM Dragon WHERE num NOT IN (SELECT num_dragon FROM Repas);
/* 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 4
SELECT Dragon.nom FROM Dragon WHERE longueur > (SELECT longueur FROM Dragon WHERE nom = 'Smeagol');
/* 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 5
SELECT Dragon.nom FROM Dragon WHERE num NOT IN (SELECT num_dragon1 FROM Amour) AND num NOT IN (SELECT num_dragon FROM 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' ; */
-- Question 6
SELECT Dragon.nom FROM Dragon WHERE sexe=0 AND num IN (SELECT num_dragon2 FROM Amour WHERE num_dragon1 NOT IN (SELECT num_dragon FROM Repas));
/* Question 8 */
/* SELECT AMOUR.force, DRAGON.nom FROM DRAGON JOIN AMOUR ON DRAGON.numD = AMOUR.numDragon1; */
-- Question 7
SELECT Nourriture.nom FROM Nourriture WHERE num NOT IN (SELECT num_nourriture FROM Repas WHERE num_dragon IN (SELECT num FROM Dragon WHERE crache_feu = 'N'));
/* 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 8
SELECT nom, nb_ecailles FROM Dragon WHERE EXISTS (SELECT * FROM Dragon WHERE nb_ecailles > 500);
/* Question 10 */
/* SELECT DRAGON.nom FROM DRAGON JOIN AMOUR ON DRAGON.numD = AMOUR.numDragon1 WHERE AMOUR.force = 'passionement' AND DRAGON.en_amour='macho'; */
-- Question 9
SELECT nom, nb_ecailles FROM Dragon WHERE nb_ecailles > 500 AND sexe = 1 AND EXISTS (SELECT * FROM Dragon WHERE nb_ecailles > 5000);
/* 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 10
SELECT nom FROM Dragon WHERE NOT EXISTS (SELECT * FROM Amour WHERE num_dragon2 = num);
/* 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; */
-- Question 11
SELECT Dragon.nom FROM Dragon, Territoire WHERE Dragon.num_terr = Territoire.num_terr AND latitude2 = 'S';
/* 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 12
SELECT Dragon.nom FROM Dragon WHERE num IN (SELECT num_dragon1 FROM Amour WHERE force = 'un peu');
/* Question 14 */
/* */
-- Question 13
SELECT Dragon.nom FROM Dragon WHERE num IN (SELECT num_dragon FROM Amour) AND crache_feu = 'O' AND num_terr IN (SELECT num_terr FROM Territoire WHERE longitude > 85 AND longitude < 95);
/* TP9 */
INSERT INTO AMOUR VALUES('un peu', 'D0008', 'D0002');
/* Question 1 */
-- Question 14
SELECT Nourriture.nom FROM Nourriture WHERE num IN (SELECT num_nourriture FROM Repas WHERE num_dragon IN (SELECT num FROM Dragon WHERE longueur > 200
AND num IN (SELECT num_dragon2 FROM Amour WHERE force = 'un peu')));
-- Question 15
SELECT Dragon.nom FROM Dragon WHERE crache_feu='O' AND num IN (SELECT num_dragon FROM Repas WHERE num_nourriture IN (SELECT num FROM Nourriture WHERE nom = 'Oeuf' OR nom = 'Orange'));
SELECT * FROM TERRITOIRE;
SELECT * FROM DRAGON;
SELECT * FROM NOURRITURE;
SELECT * FROM AMOUR;
SELECT * FROM REPAS;
-- Question 16
SELECT Dragon.nom FROM Dragon WHERE crache_feu='O' AND num IN (SELECT num_dragon FROM Repas WHERE num_nourriture IN (SELECT num FROM Nourriture WHERE nom = 'Oeuf' OR nom = 'Orange'))
AND num_terr='T02';
\d

Loading…
Cancel
Save