Requêtes SQL (2)

Des corrections du TP précédent : il fallait finir les dix premières !

Les corrigés de ces deux premiers TPs sur lesquels vous êtes interrogeables sont à la fin de ce billet 😉

Aujourd’hui : requêtes imbriquées

Exemple 1 : nom du village ou habite Asterix

SELECT nom FROM village 
WHERE vilno = (SELECT vilno FROM gaulois 
WHERE UPPER(nom)='ASTERIX');

Exemple 2 : liste des villages ou habitent des femmes

SELECT DISTINCT nom FROM village 
WHERE vilno IN (SELECT vilno FROM gaulois 
WHERE UPPER(sexe)='F');

Questions

  1. Quel est le nom du village d’Asterix ?
  2. Quel est le nombre de huttes du village d’Obelix ?
  3. Liste des noms de villages qui ont combattu contre le camp n°3 classés par ordre alphabétique (3 lignes).
  4. Quelles sont les gauloises du village d’Astérix (3 lignes) ?
  5. Liste des habitants de Serum classés par métier (4 lignes).
  6. Quelles potions ont été absorbées un jour de début de bataille (2 lignes) ?
  7. Quels sont les n°, noms et métiers des gauloises du village d’Astérix (3 lignes) ?
  8. Quel est le village dont Jolitorax est le chef (1 lignes) ? (Attention : le chef d’un village est donné par la clé étrangère ‘chef’ de la table village et non par le metier du gaulois)
  9. Quels sont les noms des gaulois qui savent préparer la potion dont l’effet contient le mot ‘force’ (4 lignes) ?
  10. Quel est le nom du village du gaulois numéro 17 (1 lignes) ?
  11. Liste des villages où habitent des gauloises ayant un nom qui se termine par ‘ine’ et des villages où habitent des gaulois ayant un nom qui se termine par ‘ix’ dans l’ordre alphabétique (9 lignes).
  12. Quelles sont les batailles (batno) d’où aucun trophée n’a été rapporté (6 lignes) ?

Test avec requêtes SQL au prochain cours présentiel.

Les corrigés des deux premiers TPs à travailler :

Je réponds à toutes questions éventuelles via les commentaires 🙂

Bon courage !

5 réflexions au sujet de « Requêtes SQL (2) »

    • Oui ! Bonjour,

      Dans l’exemple 1 :
      SELECT nom FROM village
      WHERE vilno = (SELECT vilno FROM gaulois
      WHERE UPPER(nom)='ASTERIX');

      il y a un « = » car
      (SELECT vilno FROM gaulois
      WHERE UPPER(nom)='ASTERIX')

      ne renvoie qu’un numéro et qu’on veut le village ayant ce numéro.

      Dans l’exemple 2 :
      SELECT DISTINCT nom FROM village
      WHERE vilno IN (SELECT vilno FROM gaulois
      WHERE UPPER(sexe)='F');

      il y a un « IN » car
      (SELECT vilno FROM gaulois
      WHERE UPPER(sexe)='F')

      renvoie plusieurs (quatre) numéros et qu’on veut tous les villages de cette liste de numéros.
      (Un peu comme un « for village in liste: » en python.)

      Ok ?

  1. Bonjour monsieur dans le contrôle il y aura les agrégations ou pas? ET je trouve que c’est assez dure déjà si vous nous évaluer juste sur le TP niveau 1 c’est pas mal je trouve, en plus si on doit faire le TP 2 sa va être dure et que l’on va être évalué dessus il y a trop de truc à réviser

    • Bonjour,
      Rassurez-vous : un(e) élève qui aura fait les 10 première questions des exercices niveau 1 saura faire les trois premières questions de cette courte interro de cinq questions !
      Bonne révision !

N'hésitez-pas à poser une question, ou faire avancer le schmilblick

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.