SQLite - AND & OR Clauses
Bonjour, passionnés de bases de données en herbe ! Aujourd'hui, nous allons plonger dans le monde de SQLite et explorer deux opérateurs puissants qui vous aideront à créer des requêtes de base de données plus complexes et précises : les clauses AND et OR. En tant que votre enseignant bienveillant en informatique, je suis excité de vous guider dans cette aventure. Alors, prenez vos carnets virtuels et c'est parti !
L'Opérateur AND
Imaginez que vous organisez une méga-bibliothèque de livres. Vous souhaitez trouver tous les livres écrits par J.K. Rowling ET publiés après l'année 2000. C'est là que l'opérateur AND devient pratique !
Qu'est-ce que l'Opérateur AND ?
L'opérateur AND vous permet de combiner plusieurs conditions dans votre requête SQL. Pour qu'une ligne soit incluse dans le jeu de résultats, TOUS les conditions joints par AND doivent être vraies.
Syntaxe
SELECT column1, column2, ...
FROM table_name
WHERE condition1 AND condition2 AND condition3 ...;
Exemples
Créons une table simple "books" pour travailler avec :
CREATE TABLE books (
id INTEGER PRIMARY KEY,
title TEXT,
author TEXT,
publication_year INTEGER,
genre TEXT
);
INSERT INTO books (title, author, publication_year, genre)
VALUES
('Harry Potter et la Coupe de Feu', 'J.K. Rowling', 2000, 'Fantasy'),
('Le Code Da Vinci', 'Dan Brown', 2003, 'Thriller'),
('Pour tuer un.mockingbird', 'Harper Lee', 1960, 'Classique'),
('1984', 'George Orwell', 1949, 'Dystopique'),
('La Hunger Games', 'Suzanne Collins', 2008, 'Young Adult');
Maintenant, utilisons l'opérateur AND pour trouver tous les livres de fantasy publiés après 2000 :
SELECT title, author, publication_year
FROM books
WHERE genre = 'Fantasy' AND publication_year > 2000;
Cette requête renverra :
title | author | publication_year
------------------------------------------------------------
Harry Potter et la Coupe de Feu | J.K. Rowling | 2000
Explication : Cette requête sélectionne uniquement les livres qui satisfont les deux conditions : le genre est 'Fantasy' ET l'année de publication est supérieure à 2000.
Essayons un autre exemple. Nous allons trouver tous les livres écrits par J.K. Rowling et publiés en 2000 :
SELECT title, author, publication_year
FROM books
WHERE author = 'J.K. Rowling' AND publication_year = 2000;
Cette requête renverra le même résultat que précédemment car c'est le seul livre dans notre table qui remplit les deux conditions.
Astuce Pro
Vous pouvez utiliser autant d'opérateurs AND que nécessaire dans une seule requête. Par exemple :
SELECT title, author, publication_year, genre
FROM books
WHERE author = 'J.K. Rowling' AND publication_year = 2000 AND genre = 'Fantasy';
Cette requête ajoute une condition supplémentaire à notre exemple précédent.
L'Opérateur OR
Maintenant, disons que vous avez envie soit d'un livre de fantasy SOIT d'un thriller. C'est là que l'opérateur OR vient à la rescousse !
Qu'est-ce que l'Opérateur OR ?
L'opérateur OR vous permet de combiner plusieurs conditions dans votre requête SQL. Pour qu'une ligne soit incluse dans le jeu de résultats, au moins UNE des conditions jointes par OR doit être vraie.
Syntaxe
SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 ...;
Exemples
Utilisons notre table "books" de précédemment, trouvons tous les livres soit du genre Fantasy SOIT publiés après 2005 :
SELECT title, author, publication_year, genre
FROM books
WHERE genre = 'Fantasy' OR publication_year > 2005;
Cette requête renverra :
title | author | publication_year | genre
----------------------------------------------------------------------------------
Harry Potter et la Coupe de Feu | J.K. Rowling | 2000 | Fantasy
La Hunger Games | Suzanne Collins | 2008 | Young Adult
Explication : Cette requête sélectionne les livres qui satisfont soit la condition genre 'Fantasy' soit l'année de publication supérieure à 2005.
Essayons un autre exemple. Nous allons trouver tous les livres écrits soit par J.K. Rowling soit par Dan Brown :
SELECT title, author, publication_year, genre
FROM books
WHERE author = 'J.K. Rowling' OR author = 'Dan Brown';
Cette requête renverra :
title | author | publication_year | genre
----------------------------------------------------------------------------------
Harry Potter et la Coupe de Feu | J.K. Rowling | 2000 | Fantasy
Le Code Da Vinci | Dan Brown | 2003 | Thriller
Combinaison de AND et OR
Voici où les choses deviennent vraiment intéressantes ! Vous pouvez combiner les opérateurs AND et OR dans la même requête. Mais attention - l'ordre compte !
Trouvons tous les livres Fantasy OU publiés après 2005 mais pas du genre Young Adult :
SELECT title, author, publication_year, genre
FROM books
WHERE (genre = 'Fantasy' OR publication_year > 2005) AND genre != 'Young Adult';
Cette requête renverra :
title | author | publication_year | genre
----------------------------------------------------------------------------------
Harry Potter et la Coupe de Feu | J.K. Rowling | 2000 | Fantasy
Explication : Les parenthèses sont cruciales ici. Elles assurent que la condition OR est évaluée en premier, et puis le résultat est combiné avec la condition AND.
Astuce Pro
Lorsque vous combinez AND et OR, utilisez toujours des parenthèses pour clarifier vos intentions. Cela aide à la fois vous et SQLite à comprendre la logique de votre requête.
Résumé
Voici un tableau de référence rapide des opérateurs AND et OR :
Opérateur | Description | Exemple |
---|---|---|
AND | Retourne vrai si toutes les conditions sont vraies | WHERE condition1 AND condition2 |
OR | Retourne vrai si au moins une condition est vraie | WHERE condition1 OR condition2 |
Souvenez-vous, l'opérateur AND est comme une bibliothécaire stricte qui ne vous donne un livre que si vous remplissez TOUS les critères. L'opérateur OR est plus comme un ami indulgent qui est content si vous remplissez AU MOINS UN des critères.
Pratiquez l'utilisation de ces opérateurs, et bientôt vous serez en train de créer des requêtes complexes comme un pro ! Bonne chance dans vos requêtes, futurs magiciens des bases de données !
Credits: Image by storyset