English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
SQLite WHERELa clause est utilisée pour spécifier les conditions lors de la récupération de données à partir d'une ou plusieurs tables.
Si les conditions données sont satisfaites, c'est-à-dire true, alors elle renverra les valeurs spécifiques de la table. Vous devrez utiliser la clause WHERE pour filtrer les enregistrements et extraire uniquement les enregistrements nécessaires.
La clause WHERE est utilisée non seulement dans les requêtes SELECT, mais aussi dans les requêtes UPDATE, DELETE, etc., ce qui sera présenté dans les chapitres suivants.
Voici la syntaxe de base d'une requête SELECT SQLite avec la clause WHERE.
SELECT column1, column2, columnN FROM table_name WHERE [condition]
Vous pouvez utiliserLes opérateurs de comparaison ou les opérateurs logiques (Par exemple >, <, =, LIKE, NOT, etc.) pour spécifier les conditions. Regardez la table COMPANY suivante avec les enregistrements suivants-
ID NOM ÂGE ADRESSE SALAIRES ---------- ---------- ---------- ---------- ---------- 1 Paul 32 Californie 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
Voici un exemple simple de l'utilisation des opérateurs logiques SQLite. La requête SELECT suivante liste les AGE (âge) supérieurs ou égaux à25 et SALARY (salaire) supérieurs ou égaux à65000.00 tous les enregistrements.
sqlite> SÉLECT * FROM COMPANY WHERE AGE >= 25 ET SALARY >= 65000; ID NOM ÂGE ADRESSE SALAIRES ---------- ---------- ---------- ---------- ---------- 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0
La requête SELECT suivante liste les AGE (âge) supérieurs ou égaux à25 OU SALARY (salaire) est supérieur ou égal65000.00 tous les enregistrements.
sqlite> SÉLECT * FROM COMPANY WHERE AGE >= 25 OU SALARY >= 65000; ID NOM ÂGE ADRESSE SALAIRES ---------- ---------- ---------- ---------- ---------- 1 Paul 32 Californie 20000.0 2 Allen 25 Texas 15000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0
Immédiatement après la requête SELECT, les enregistrements où l'AGE (âge) n'est pas NULL sont répertoriés, ce qui signifie que tous les enregistrements seront affichés, car la valeur de l'AGE dans aucun enregistrement n'est égale à NULL.
sqlite> SELECT * FROM COMPANY WHERE AGE IS NOT NULL; ID NOM ÂGE ADRESSE SALAIRES ---------- ---------- ---------- ---------- ---------- 1 Paul 32 Californie 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
La requête SELECT suivante répertorie tous les enregistrements dont le nom commence par 'Ki', sans rapport avec n'importe quel enregistrement suivant 'Ki'.
sqlite> SÉLECT * FROM COMPANY WHERE NAME LIKE 'Ki%'; ID NOM ÂGE ADRESSE SALAIRES ---------- ---------- ---------- ---------- ---------- 6 Kim 22 South-Hall 45000.0
La requête SELECT suivante répertorie tous les enregistrements dont le nom commence par 'Ki', sans rapport avec les enregistrements suivant 'Ki'.
sqlite> SÉLECT * FROM COMPANY WHERE NAME GLOB 'Ki*'; ID NOM ÂGE ADRESSE SALAIRES ---------- ---------- ---------- ---------- ---------- 6 Kim 22 South-Hall 45000.0
Après la requête SELECT, les valeurs AGE (âge) sont répertoriées en25OU27tous les enregistrements.
sqlite> SÉLECT * FROM COMPANY WHERE AGE IN ( 25, 27 ); ID NOM ÂGE ADRESSE SALAIRES ---------- ---------- ---------- ---------- ---------- 2 Allen 25 Texas 15000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0
La requête SELECT suivante répertorie les valeurs AGE (âge) qui ne sont ni25NI27tous les enregistrements.
sqlite> SÉLECT * FROM COMPANY WHERE AGE NOT IN ( 25, 27 ); ID NOM ÂGE ADRESSE SALAIRES ---------- ---------- ---------- ---------- ---------- 1 Paul 32 Californie 20000.0 3 Teddy 23 Norway 20000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
Après la requête SELECT, les valeurs AGE (âge) sont répertoriées en25ET27tous les enregistrements.
sqlite> SÉLECT * FROM COMPANY WHERE AGE BETWEEN 25 AND 27; ID NOM ÂGE ADRESSE SALAIRES ---------- ---------- ---------- ---------- ---------- 2 Allen 25 Texas 15000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0
La requête SELECT suivante utilise une sous-requête SQL, où la sous-requête recherche SALARY > 65Tous les enregistrements de la table 000, suivis de la clause WHERE utilisant l'opérateur EXISTS pour lister les enregistrements externes où l'AGE existe dans les résultats de la sous-requête.-
sqlite> SELECT AGE FROM COMPANY WHERE EXISTS (SELECT AGE FROM COMPANY WHERE SALARY > 65000); AGE ---------- 32 25 23 25 27 22 24
La requête SELECT suivante utilise une sous-requête SQL, où la sous-requête recherche SALARY > 65Tous les enregistrements de la table 000, ainsi que les enregistrements externes listés avec l'opérateur > dans la clause WHERE, indiquent les enregistrements où l'AGE est supérieur au résultat de la sous-requête renvoyant l'AGE.
sqlite> SÉLECT * FROM COMPANY Où AGE > (SÉLECT AGE FROM COMPANY Où SALARY > 65000); ID NOM ÂGE ADRESSE SALAIRES ---------- ---------- ---------- ---------- ---------- 1 Paul 32 Californie 20000.0