SQLite
 sql >> Base de données >  >> RDS >> SQLite

SQLite Où

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 :

  1. Tout d'abord, vérifiez le tableau dans FROM clause.
  2. Deuxièmement, évaluez les conditions dans WHERE clause pour obtenir les lignes remplissant ces conditions.
  3. 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_expressionCode 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.