Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1.Afficher le nombre total de livres
- SELECT COUNT(*) AS NBR_LIVRES
- FROM LIVRE;
- // !! NOTE LE PROF PREFERE QU4ON EVITE DE METTRE DES * DANS LES COUNT() !!
- // EXEMPE METTRE UNE COLONNE N4AYANT JAMAIS UN ELEMENT NUL
- 2.Afficher le nombre de livres ayant une cote supérieure à 4
- SELECT COUNT(*) AS NBR_LIVRES
- FROM LIVRE
- WHERE COTE > 4;
- 3. Afficher le nombre de livres publiés par année (de publication). Ordonnez le résultat dans
- l’ordre croissant des années
- SELECT TO_CHAR(DATEPUBLICATION,'YYYY') AS ANNEEPUBLICATION, COUNT(*) AS TOTAL
- FROM LIVRE
- GROUP BY TO_CHAR(DATEPUBLICATION,'YYYY');
- ORDER BY TO_CHAR(DATEPUBLICATION,'YYYY');
- 4.Afficher le nombre de livres par nom de catégorie
- SELECT COUNT(*) AS TOTAL_LIVRES, C.NOM
- FROM LIVRE L
- JOIN CATEGORIE C ON C.NUMCATEGORIE = L.NUMCATEGORIE
- GROUP BY C.NOM
- 5.Compter le nombre de livres écrit par chaque auteur. Afficher le résultat par ordre
- alphabétique inverse des noms d’auteur
- SELECT COUNT(A.NUMAUTEUR) AS NBR_LIVRES, A.NOM
- FROM LIVRE L
- JOIN REDACTION R ON L.NUMLIVRE = R.NUMLIVRE
- JOIN AUTEUR A ON A.NUMAUTEUR = R.NUMAUTEUR
- GROUP BY A.NOM
- ORDER BY A.NOM DESC
- 6. Quelle est la cote minimale et la cote maximale des livres ?
- SELECT COTE, TITRE
- FROM LIVRE
- WHERE COTE = (SELECT MAX(COTE)
- FROM LIVRE )
- UNION
- SELECT COTE, TITRE
- FROM LIVRE
- WHERE COTE = (SELECT MIN(COTE)
- FROM LIVRE )
- 7.Pour chaque livre, afficher le titre et le nombre d’exemplaires de chaque livre
- SELECT L.TITRE, COUNT(*) AS NBR_EXEMPLAIRE
- FROM LIVRE L
- JOIN EXEMPLAIRE E ON E.NUMLIVRE = L.NUMLIVRE
- GROUP BY L.TITRE;
- 8. Pour chaque livre, donner le titre du livre et le nombre d’exemplaires dans l’état 10
- SELECT L.TITRE AS TITRE, COUNT(*) AS NBR_EXEMPLAIRE
- FROM LIVRE L
- JOIN EXEMPLAIRE E ON E.NUMLIVRE = L.NUMLIVRE
- WHERE L.COTE = 10
- GROUP BY L.TITRE;
- 9. Trouver la durée moyenne d’un emprunt
- SELECT AVG(DATERETOUR - DATELOCATION) AS DELAIS
- FROM LOCATION
- 10. Afficher le nombre de locations par mois
- SELECT COUNT(*) AS NBR_LOCATION, TO_CHAR(DATELOCATION, 'MM/YYYY') AS MOIS
- FROM LOCATION
- GROUP BY TO_CHAR(DATELOCATION, 'MM/YYYY');
- 11. Trouver l’âge du plus jeune auteur
- SELECT NOM, (SYSDATE-DATENAISSANCE)/365.256 AS AN
- FROM AUTEUR
- WHERE DATENAISSANCE = (SELECT MAX(DATENAISSANCE)
- FROM AUTEUR)
- 12.Afficher les auteurs ayant écrit plus d’un livre.
- SELECT A.NOM, COUNT(*)
- FROM AUTEUR A
- JOIN REDACTION R ON R.NUMAUTEUR = A.NUMAUTEUR
- GROUP BY A.NOM
- HAVING COUNT(*) > 1
- 13. Combien de fois chaque exemplaire d’un livre a-t-il été emprunté (titre, num exemplaire,
- nbre) ? Présenter les résultats par ordre d’emprunt décroissant.
- SELECT LI.TITRE, LO.NUMEXEMPLAIRE, COUNT(*) AS NBRE
- FROM LOCATION LO
- JOIN LIVRE LI ON LI.NUMLIVRE = LO.NUMLIVRE
- GROUP BY LI.TITRE, LO.NUMEXEMPLAIRE
- ORDER BY NBRE DESC
- 14. Idem mais uniquement pour les exemplaires empruntés plus d’une fois.
- SELECT LI.TITRE, LO.NUMEXEMPLAIRE, COUNT(*) AS NBRE
- FROM LOCATION LO
- JOIN LIVRE LI ON LI.NUMLIVRE = LO.NUMLIVRE
- GROUP BY LI.TITRE, LO.NUMEXEMPLAIRE
- HAVING COUNT(*) > 1
- ORDER BY NBRE DESC
- 15. Afficher le nom des auteurs nés après la publication de « Sphinx »
- SELECT NOM, DATENAISSANCE
- FROM AUTEUR
- WHERE DATENAISSANCE < ALL(SELECT DATEPUBLICATION
- FROM LIVRE
- WHERE UPPER(TITRE) = 'SPHINX')
- 16. Afficher les livres (titre) ayant été critiqué par des emprunteurs n’ayant pas loué un
- exemplaire de ce livre.
- SELECT L.TITRE
- FROM LIVRE L
- JOIN CRITIQUE C ON C.NUMLIVRE = L.NUMLIVRE
- WHERE C.NUMEMPRUNTEUR NOT IN(SELECT LO.NUMEMPRUNTEUR
- FROM LOCATION LO
- WHERE LO.NUMLIVRE = L.NUMLIVRE)
- 17. Afficher les titres et les cotes des livres dont la cote est inférieure à celle de « Virus ».
- SELECT L.TITRE, L.COTE
- FROM LIVRE L
- WHERE L.COTE < ALL(SELECT L2.COTE
- FROM LIVRE L2
- WHERE UPPER(L2.TITRE) = 'VIRUS')
- 18. Afficher les noms et prénoms des emprunteurs dont la cotisation est plus élevée que
- celle de Kid Paddle.
- SELECT E.NOM, E.PRENOM, E.COTISATION
- FROM EMPRUNTEUR E
- WHERE E.COTISATION > ALL(SELECT E2.COTISATION
- FROM EMPRUNTEUR E2
- WHERE UPPER(E2.PRENOM) = 'KID' AND UPPER(E2.NOM) = 'PADDLE')
- 19. Trouver les livres de la catégorie ‘Administration’ dont la cote est supérieure à toutes les
- cotes des livres de la catégorie ‘SQL’
- SELECT L.TITRE
- FROM LIVRE L
- JOIN CATEGORIE C ON C.NUMCATEGORIE = L.NUMCATEGORIE
- WHERE UPPER(C.NOM) = 'ADMINISTRATION'
- AND
- L.COTE > ALL(SELECT L2.COTE
- FROM LIVRE L2
- JOIN CATEGORIE C2 ON C2.NUMCATEGORIE = L2.NUMCATEGORIE
- WHERE UPPER(C2.NOM) = 'SQL')
- 20. Quel est le titre du livre qui a la plus haute cote ?
- SELECT L.TITRE
- FROM LIVRE L
- WHERE L.COTE = (SELECT MAX(L2.COTE)
- FROM LIVRE L2)
- 21. Combien de livres ont un exemplaire dans l’état 10 ?
- SELECT COUNT(L.NUMLIVRE)
- FROM LIVRE L
- WHERE L.NUMLIVRE = ANY(SELECT E.NUMLIVRE
- FROM EXEMPLAIRE E
- WHERE E.ETAT = 10)
- 22. Trouver les titres des livres dont la cote moyenne des critiques est différente de la cote
- attachée au livre.
- SELECT L.TITRE
- FROM LIVRE L
- LEFT OUTER JOIN CRITIQUE C ON C.NUMLIVRE = L.NUMLIVRE
- GROUP BY L.TITRE, L.COTE
- HAVING AVG(C.COTE) <> L.COTE OR AVG(C.COTE) IS NULL
- 23. En utilisant un opérateur ensembliste, trouvez les livres n’ayant fait l’objet d’aucune
- location.
- SELECT L.TITRE
- FROM LIVRE L
- MINUS
- SELECT L2.TITRE
- FROM LOCATION LO
- JOIN LIVRE L2 ON L2.NUMLIVRE = LO.NUMLIVRE;
- 24. En utilisant l’opérateur [NOT] EXISTS, affichez les emprunteurs qui n’ont emprunté
- aucun livre. Ecrivez ensuite une variante utilisant un opérateur ensembliste.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement