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
- Quel est le nom du village d’Asterix ?
- Quel est le nombre de huttes du village d’Obelix ?
- Liste des noms de villages qui ont combattu contre le camp n°3 classés par ordre alphabétique (3 lignes).
- Quelles sont les gauloises du village d’Astérix (3 lignes) ?
- Liste des habitants de Serum classés par métier (4 lignes).
- Quelles potions ont été absorbées un jour de début de bataille (2 lignes) ?
- Quels sont les n°, noms et métiers des gauloises du village d’Astérix (3 lignes) ?
- 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)
- Quels sont les noms des gaulois qui savent préparer la potion dont l’effet contient le mot ‘force’ (4 lignes) ?
- Quel est le nom du village du gaulois numéro 17 (1 lignes) ?
- 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).
- 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 !
Bonjour monsieur, pourriez-vous me dire la différence entre ‘=’ et ‘IN’ en SQL
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 ?
Oui c’est bon merci
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 !