Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* INSTRUCTIONS
- psql -h dbserver
- \H
- \o output.html
- \i TPscript.sql
- */
- /* 1: Dragons qui crachent du feu */
- SELECT "Dragon"
- FROM "Dragons"."Table Dragon"
- WHERE "CracheFeu" = true;
- /* 2: Dragons males qui crachent du feu */
- SELECT "Dragon"
- FROM "Dragons"."Table Dragon"
- WHERE "CracheFeu" = true
- AND "Sexe" = 'M';
- /* 3: Liste des dragons femelles dans l'ordre decroissant de leur longueur */
- SELECT *
- FROM "Dragons"."Table Dragon"
- WHERE "Sexe" = 'F'
- ORDER BY "Longueur" DESC;
- /* 4: Rapport Moyen Longueur-Ecailles male puis femelle */
- SELECT "Dragon","Ecailles"/"Longueur"
- FROM "Dragons"."Table Dragon"
- WHERE "Sexe" = 'M';
- SELECT "Dragon","Ecailles"/"Longueur"
- FROM "Dragons"."Table Dragon"
- WHERE "Sexe" = 'F';
- /* 5: Dragons amoureux */
- SELECT "DragonAimant"
- FROM "Dragons"."Table Amours";
- /* 6: Dragons qui ne sont pas amoureux */
- SELECT "Dragon"
- FROM "Dragons"."Table Dragon"
- WHERE "Dragon"
- NOT IN (
- SELECT "DragonAimant" FROM "Dragons"."Table Amours"
- );
- /* 7: Qui aime qui passionnement */
- SELECT *
- FROM "Dragons"."Table Amours"
- WHERE "Force" = 'passionnement';
- /* 8: Qui aime qui au moins passionnement */
- SELECT *
- FROM "Dragons"."Table Amours"
- WHERE "Force" = 'passionnement'
- OR "Force" = 'a la folie';
- /* 9: Liste des couples qui s'aiment mutuellement */
- SELECT "DragonAimant","DragonAime"
- FROM "Dragons"."Table Amours"
- WHERE "DragonAimant"
- IN (
- SELECT "DragonAime" FROM "Dragons"."Table Amours"
- )
- AND "DragonAime"
- IN (
- SELECT "DragonAimant" FROM "Dragons"."Table Amours"
- );
- /* 10: Q9 mais en supprimant les faux doublons */
- SELECT "DragonAime"
- FROM "Dragons"."Table Amours"
- WHERE "DragonAimant"
- IN (
- SELECT "DragonAime" FROM "Dragons"."Table Amours"
- )
- AND "DragonAime"
- IN (
- SELECT "DragonAimant" FROM "Dragons"."Table Amours"
- );
- /* 11: Noms des Dragonnes aimees par tous les dragons machos */
- SELECT "DragonAime"
- FROM "Dragons"."Table Amours", "Dragons"."Table Dragon"
- WHERE "Dragon" = "DragonAimant"
- AND "Sexe" = 'M'
- AND "EnAmour" = 'macho'
- INTERSECT SELECT "DragonAimant"
- FROM "Dragons"."Table Amours", "Dragons"."Table Dragon"
- WHERE "Dragon" = "DragonAime";
- /* 12: Noms des Dragonnes aimees que par des dragons timides */
- SELECT "DragonAime"
- FROM "Dragons"."Table Amours", "Dragons"."Table Dragon"
- WHERE "Dragon" = "DragonAimant"
- AND "Sexe" = 'M'
- AND "EnAmour" = 'timide'
- INTERSECT SELECT "DragonAimant"
- FROM "Dragons"."Table Amours", "Dragons"."Table Dragon"
- WHERE "Dragon" = "DragonAime";
- /* 13: Produits hypo-calories (< 10 calories) */
- SELECT *
- FROM "Dragons"."Table nourriture"
- WHERE "Calories" < 10;
- /* 14: Dragons qui mange des oeufs */
- SELECT "Dragon"
- FROM "Dragons"."Table Repas"
- WHERE "Produit" = 'oeuf';
- /* 15: Dragonnes qui mangent des oeufs */
- SELECT "Dragon"
- FROM "Dragons"."Table Dragon"
- WHERE "Sexe" = 'F'
- INTERSECT SELECT "Dragon"
- FROM "Dragons"."Table Repas"
- WHERE "Produit" = 'oeuf';
- /* 16: Dragons qui mangent pas */
- SELECT "Dragon"
- FROM "Dragons"."Table Dragon"
- EXCEPT SELECT DISTINCT "Dragon"
- FROM "Dragons"."Table Repas";
- /* 17: Produits non hypo-calories consommer par dragons males crachant du feu */
- SELECT DISTINCT "Dragons"."Table nourriture"."Produit"
- FROM "Dragons"."Table nourriture","Dragons"."Table Repas","Dragons"."Table Dragon"
- WHERE "Dragons"."Table nourriture"."Calories" >= 10
- AND "Dragons"."Table nourriture"."Produit" = "Dragons"."Table Repas"."Produit"
- AND "Dragons"."Table Repas"."Dragon" = "Dragons"."Table Dragon"."Dragon"
- AND "Dragons"."Table Dragon"."Sexe" = 'M'
- AND "Dragons"."Table Dragon"."CracheFeu" = true;
- /* 18: Noms des Dragons qui mangent de tout */
- SELECT "Dragon"
- FROM "Dragons"."Table Repas", "Dragons"."Table nourriture"
- WHERE "Dragons"."Table Repas"."Produit" = "Dragons"."Table nourriture"."Produit"
- GROUP BY "Dragon"
- HAVING COUNT("Dragons"."Table Repas"."Produit") = (
- SELECT COUNT(DISTINCT "Produit")
- FROM "Dragons"."Table nourriture"
- );
- /* 19: Nombre de Calories par chaque dragon lors d'un repas, classer dans l'ordre croissant du total des calories */
- SELECT "Dragon", SUM("Quantite" * "Calories")
- FROM "Dragons"."Table Repas", "Dragons"."Table nourriture"
- WHERE "Dragons"."Table Repas"."Produit" = "Dragons"."Table nourriture"."Produit"
- GROUP BY "Dragon"
- ORDER BY (SUM("Quantite" * "Calories")) DESC;
- /* 20: --- */
- SELECT "Dragons"."Table Dragon"."Dragon", SUM(1 * "Calories" * "Quantite" / "Longueur")
- FROM "Dragons"."Table Repas", "Dragons"."Table Dragon", "Dragons"."Table nourriture"
- WHERE "Dragons"."Table Dragon"."Dragon" = "Dragons"."Table Repas"."Dragon"
- AND "Dragons"."Table nourriture"."Produit" = "Dragons"."Table Repas"."Produit"
- AND "CracheFeu" = true
- GROUP BY "Dragons"."Table Dragon"."Dragon"
- ORDER BY (SUM(1 * "Calories" * "Quantite" / "Longueur")) DESC;
- /* 21: Dragons qui mangent pas et qui aiment personne */
- SELECT "Dragon"
- FROM "Dragons"."Table Dragon"
- EXCEPT SELECT DISTINCT "Dragon"
- FROM "Dragons"."Table Repas"
- EXCEPT SELECT DISTINCT "DragonAimant"
- FROM "Dragons"."Table Amours";
- /* 22: Produits consommes par les dragons aimant a la folie */
- SELECT DISTINCT "Produit"
- FROM "Dragons"."Table Repas", "Dragons"."Table Amours"
- WHERE "Dragons"."Table Amours"."DragonAimant" = "Dragons"."Table Repas"."Dragon"
- AND "Force" = 'a la folie';
- /* 23: Dragonnes dont au moins un pretendant fais la greve de la faim */
- SELECT DISTINCT "DragonAime"
- FROM "Dragons"."Table Amours", "Dragons"."Table Dragon"
- WHERE "Dragons"."Table Amours"."DragonAime" = "Dragons"."Table Dragon"."Dragon"
- AND "Sexe" = 'F'
- AND "DragonAimant" IN (
- SELECT "Dragon"
- FROM "Dragons"."Table Dragon"
- EXCEPT SELECT DISTINCT "Dragon"
- FROM "Dragons"."Table Repas"
- );
- /* 24: Dragonnes dont tous les pretendants font la greve de la faim */
- SELECT "DragonAime"
- FROM "Dragons"."Table Amours", "Dragons"."Table Dragon"
- WHERE "Dragons"."Table Amours"."DragonAime" = "Dragons"."Table Dragon"."Dragon"
- GROUP BY "DragonAime"
- HAVING COUNT("Dragons"."Table Amours"."DragonAime") = (
- SELECT COUNT(DISTINCT "Dragon")
- FROM "Dragons"."Table Repas"
- );
- /* 25: Les couples dont le nombre d'ecailles est paire et dont le comportement amoureux est le meme */
- SELECT A1."DragonAimant", A1."DragonAime"
- FROM "Dragons"."Table Amours" A1
- WHERE A1."DragonAimant" = 'Miloch';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement