Résumé :dans ce tutoriel, vous apprendrez à utiliser SQLite WHERE
clause pour spécifier la condition de recherche des lignes renvoyées par la requête.
Introduction à SQLite WHERE
clause
Le WHERE
la clause est une clause facultative du SELECT
déclaration. Il apparaît après le FROM
clause sous la forme de l'instruction suivante :
SELECT
column_list
FROM
table
WHERE
search_condition;
Code language: SQL (Structured Query Language) (sql)
Dans cet exemple, vous ajoutez un WHERE
clause au SELECT
instruction pour filtrer les lignes renvoyées par la requête. Lors de l'évaluation d'un SELECT
déclaration avec un WHERE
clause, SQLite utilise les étapes suivantes :
- Tout d'abord, vérifiez le tableau dans
FROM
clause. - Deuxièmement, évaluez les conditions dans
WHERE
clause pour obtenir les lignes remplissant ces conditions. - Troisièmement, faites en sorte que le résultat final soit basé sur les lignes de l'étape précédente avec des colonnes dans le
SELECT
clause.
La condition de recherche dans le WHERE
a la forme suivante :
left_expression COMPARISON_OPERATOR right_expression
Code language: SQL (Structured Query Language) (sql)
Par exemple, vous pouvez former une condition de recherche comme suit :
WHERE column_1 = 100;
WHERE column_2 IN (1,2,3);
WHERE column_3 LIKE 'An%';
WHERE column_4 BETWEEN 10 AND 20;
Code language: SQL (Structured Query Language) (sql)
Outre le SELECT
déclaration, vous pouvez utiliser le WHERE
clause dans la UPDATE
et DELETE
déclarations.
Opérateurs de comparaison SQLite
Un opérateur de comparaison teste si deux expressions sont identiques. Le tableau suivant illustre les opérateurs de comparaison que vous pouvez utiliser pour construire des expressions :
Opérateur | Signification |
---|---|
= | Égal à |
<> ou != | Pas égal à |
< | Moins de |
> | Supérieur à |
<= | Inférieur ou égal à |
>= | Supérieur ou égal à |
Opérateurs logiques SQLite
Les opérateurs logiques permettent de tester la véracité de certaines expressions. Un opérateur logique renvoie 1, 0 ou une valeur NULL.
Notez que SQLite ne fournit pas de type de données booléen, donc 1 signifie VRAI et 0 signifie FAUX.
Le tableau suivant illustre les opérateurs logiques SQLite :
Opérateur | Signification |
---|---|
TOUS | renvoie 1 si toutes les expressions valent 1. |
ET | renvoie 1 si les deux expressions sont 1, et 0 si l'une des expressions est 0. |
TOUT | renvoie 1 si l'une des comparaisons d'un ensemble vaut 1. |
ENTRE | renvoie 1 si une valeur est comprise dans une plage. |
EXISTE | renvoie 1 si une sous-requête contient des lignes. |
EN | renvoie 1 si une valeur se trouve dans une liste de valeurs. |
LIKE | renvoie 1 si une valeur correspond à un modèle |
PAS | inverse la valeur des autres opérateurs tels que NOT EXISTS, NOT IN, NOT BETWEEN, etc. |
OU | renvoie true si l'une ou l'autre des expressions vaut 1 |
SQLite WHERE
exemples de clauses
Nous utiliserons les tracks
table dans l'exemple de base de données pour illustrer comment utiliser le WHERE
clause.
L'opérateur d'égalité (=
) est l'opérateur le plus couramment utilisé. Par exemple, la requête suivante utilise le WHERE
clause l'opérateur d'égalité pour trouver toutes les pistes de l'album id 1 :
SELECT
name,
milliseconds,
bytes,
albumid
FROM
tracks
WHERE
albumid = 1;
Code language: SQL (Structured Query Language) (sql)
Essayez-le
SQLite compare les valeurs stockées dans le AlbumId
colonne avec une valeur littérale 1
pour tester s'ils sont égaux. Seules les lignes qui satisfont la condition sont renvoyées.
Lorsque vous comparez deux valeurs, vous devez vous assurer qu'elles sont du même type de données. Vous devez comparer des nombres avec des nombres, des chaînes avec des chaînes, etc.
Si vous comparez des valeurs dans différents types de données, par exemple une chaîne avec un nombre, SQLite doit effectuer des conversions de type de données implicites, mais en général, vous devez éviter de le faire.
Vous utilisez l'opérateur logique pour combiner des expressions. Par exemple, pour obtenir les pistes de l'album 1 dont la durée est supérieure à 200 000 millisecondes, vous utilisez l'instruction suivante :
SELECT
name,
milliseconds,
bytes,
albumid
FROM
tracks
WHERE
albumid = 1
AND milliseconds > 250000;
Code language: SQL (Structured Query Language) (sql)
Essayez-le
L'instruction utilisait deux expressions albumid = 1
et milliseconds > 250000
. Il utilise le AND
opérateur logique pour combiner ces expressions.
SQLite WHERE
clause avec LIKE
exemple d'opérateur
Parfois, vous ne vous souvenez peut-être pas exactement des données que vous souhaitez rechercher. Dans ce cas, vous effectuez une recherche inexacte en utilisant le LIKE
opérateur.
Par exemple, pour trouver les morceaux composés par Smith, vous utilisez le LIKE
opérateur comme suit :
SELECT
name,
albumid,
composer
FROM
tracks
WHERE
composer LIKE '%Smith%'
ORDER BY
albumid;
Code language: SQL (Structured Query Language) (sql)
Essayez-le
Vous obtenez des morceaux composés par R.A. Smith-Diesel, Adrian Smith, etc.
SQLite WHERE
clause avec le IN
exemple d'opérateur
Le IN
L'opérateur vous permet de vérifier si une valeur est dans une liste d'une liste de valeurs séparées par des virgules. Par exemple, pour trouver des pistes dont l'ID de type de média est 2 ou 3, vous utilisez le IN
opérateur comme indiqué dans l'instruction suivante :
SELECT
name,
albumid,
mediatypeid
FROM
tracks
WHERE
mediatypeid IN (2, 3);
Code language: SQL (Structured Query Language) (sql)
Essayez-le
Dans ce tutoriel, vous avez appris à utiliser SQLite WHERE
clause pour filtrer les lignes dans le jeu de résultats final à l'aide d'opérateurs de comparaison et logiques.