Les mots clés IN
et NOT IN
Notions théoriques
En SQL, les mots clés IN
et NOT IN
sont utilisés pour vérifier si une valeur se trouve dans une liste de valeurs ou non.
IN
: Si la valeur est présente dans la liste, la condition est vraie.NOT IN
: Si la valeur n'est pas présente dans la liste, la condition est vraie.
Ces opérateurs sont souvent utilisés dans la clause WHERE
pour filtrer les résultats en fonction d'une liste de valeurs.
Exemple pratique
Imaginons que nous voulons trouver tous les livres écrits par les auteurs 'Verne', 'Hugo' et 'Corneille'.
Nous pouvons utiliser l'opérateur IN
pour cela :
SELECT titre
FROM livres
JOIN auteurs ON livres.idauteur = auteurs.idauteur
WHERE auteurs.nom IN ('Verne', 'Hugo', 'Corneille');
N'oubliez pas, la pratique est la clé pour maîtriser une nouvelle compétence.
Testez vous même les requêtes ;-)
Inversement, si nous voulons trouver tous les livres qui n'ont pas été écrits par ces auteurs, nous pouvons utiliser NOT IN
:
SELECT titre
FROM livres
JOIN auteurs ON livres.idauteur = auteurs.idauteur
WHERE auteurs.nom NOT IN ('Verne', 'Hugo', 'Corneille');
Test de mémorisation/compréhension
TP pour réfléchir et résoudre des problèmes
Télécharger le fichier 'cdi.sql' - Télécharger le MCD
Dans ce TP, vous allez utiliser les opérateurs
IN
etNOT IN
pour résoudre un problème.
Votre mission est de trouver*, parmi les données de la base bibliotheque
,*
le nom de tous les auteurs qui ont écrit plus d'un livre
et qui ne sont pas dans la liste des auteurs 'Verne', 'Hugo' et 'Corneille'.
Pour chaque enregistrement, nous souhaitons afficher le nom de l'auteur et le nombre de livres qu'il a écrit.
Une solution
Vous devez être connecté pour voir le contenu.
TP n°2
Votre mission est de trouver*, parmi les données de la base bibliotheque
,*
le titre de tous les livres de Victor Hugo, Jules Verne ou Zola.
C'est à dire dont les auteurs sont dans la liste 'Hugo', 'Verne' ou 'Zola'.
Pour chaque enregistrement, nous souhaitons afficher le le nom de l'auteur et le titre du livre.
Une solution
Vous devez être connecté pour voir le contenu.