SQLite
 sql >> Database >  >> RDS >> SQLite

SQLite Dove

Riepilogo :in questo tutorial imparerai come usare SQLite WHERE clausola per specificare la condizione di ricerca per le righe restituite dalla query.

Introduzione a SQLite WHERE clausola

Il WHERE è una clausola facoltativa di SELECT dichiarazione. Appare dopo il FROM clausola come la seguente affermazione:

SELECT
	column_list
FROM
	table
WHERE
	search_condition;Code language: SQL (Structured Query Language) (sql)

In questo esempio, aggiungi un WHERE clausola al SELECT istruzione per filtrare le righe restituite dalla query. Quando si valuta un SELECT dichiarazione con un WHERE clausola, SQLite utilizza i seguenti passaggi:

  1. Per prima cosa, controlla la tabella nel FROM clausola.
  2. In secondo luogo, valuta le condizioni nel WHERE clausola per ottenere le righe che soddisfano queste condizioni.
  3. In terzo luogo, crea il risultato finale impostato in base alle righe del passaggio precedente con le colonne nel SELECT clausola.

La condizione di ricerca in WHERE ha la seguente forma:

left_expression COMPARISON_OPERATOR right_expressionCode language: SQL (Structured Query Language) (sql)

Ad esempio, puoi formare una condizione di ricerca come segue:

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)

Oltre a SELECT istruzione, puoi usare il WHERE clausola nel UPDATE e DELETE dichiarazioni.

Operatori di confronto SQLite

Un operatore di confronto verifica se due espressioni sono uguali. La tabella seguente illustra gli operatori di confronto che puoi utilizzare per costruire espressioni:

Operatore Significato
= Uguale a
<> o != Non uguale a
< Meno di
> Maggiore di
<= Inferiore o uguale a
>= Maggiore o uguale a

Operatori logici SQLite

Gli operatori logici consentono di verificare la verità di alcune espressioni. Un operatore logico restituisce 1, 0 o un valore NULL.

Si noti che SQLite non fornisce il tipo di dati booleano, quindi 1 significa VERO e 0 significa FALSO.

La tabella seguente illustra gli operatori logici di SQLite:

Operatore Significato
TUTTI restituisce 1 se tutte le espressioni sono 1.
E restituisce 1 se entrambe le espressioni sono 1 e 0 se una delle espressioni è 0.
QUALSIASI restituisce 1 se uno qualsiasi di un insieme di confronti è 1.
TRA restituisce 1 se un valore rientra in un intervallo.
ESISTE restituisce 1 se una sottoquery contiene righe.
IN restituisce 1 se un valore è in un elenco di valori.
MI PIACE restituisce 1 se un valore corrisponde a un modello
NON inverte il valore di altri operatori come NOT EXISTS, NOT IN, NOT BETWEEN, ecc.
O restituisce true se una delle espressioni è 1

SQLite WHERE esempi di clausole

Useremo le tracks tabella nel database di esempio per illustrare come utilizzare WHERE clausola.

L'operatore di uguaglianza (= ) è l'operatore più comunemente utilizzato. Ad esempio, la query seguente utilizza WHERE clausola l'operatore di uguaglianza per trovare tutte le tracce nell'ID album 1:

SELECT
   name,
   milliseconds,
   bytes,
   albumid
FROM
   tracks
WHERE
   albumid = 1;Code language: SQL (Structured Query Language) (sql)

Provalo

SQLite confronta i valori memorizzati in AlbumId colonna con un valore letterale 1 per verificare se sono uguali. Vengono restituite solo le righe che soddisfano la condizione.

Quando si confrontano due valori, è necessario assicurarsi che siano dello stesso tipo di dati. Dovresti confrontare i numeri con i numeri, la stringa con le stringhe, ecc.

Nel caso in cui confronti valori in diversi tipi di dati, ad esempio una stringa con un numero, SQLite deve eseguire conversioni di tipi di dati impliciti, ma in generale dovresti evitare di farlo.

Utilizzare l'operatore logico per combinare le espressioni. Ad esempio, per ottenere le tracce dell'album 1 che hanno una lunghezza maggiore di 200.000 millisecondi, utilizza la seguente istruzione:

SELECT
	name,
	milliseconds,
	bytes,
	albumid
FROM
	tracks
WHERE
	albumid = 1
AND milliseconds > 250000;Code language: SQL (Structured Query Language) (sql)

Provalo

L'istruzione utilizzava due espressioni albumid = 1 e milliseconds > 250000 . Usa il AND logico per combinare queste espressioni.


SQLite WHERE clausola con LIKE esempio di operatore

A volte, potresti non ricordare esattamente i dati che desideri cercare. In questo caso, esegui una ricerca inesatta usando il LIKE operatore.

Ad esempio, per trovare le tracce composte da Smith, usa il LIKE operatore come segue:

SELECT
	name,
	albumid,
	composer
FROM
	tracks
WHERE
	composer LIKE '%Smith%'
ORDER BY
	albumid;Code language: SQL (Structured Query Language) (sql)

Provalo

Ottieni brani composti da R.A. Smith-Diesel, Adrian Smith, ecc.

SQLite WHERE clausola con IN esempio di operatore

Il IN consente di verificare se un valore è in un elenco di un elenco di valori separati da virgole. Ad esempio, per trovare le tracce che hanno l'ID del tipo di media 2 o 3, usa il IN operatore come mostrato nella seguente istruzione:

SELECT
	name,
	albumid,
	mediatypeid
FROM
	tracks
WHERE
	mediatypeid IN (2, 3);Code language: SQL (Structured Query Language) (sql)

Provalo

In questo tutorial, hai imparato come usare SQLite WHERE clausola per filtrare le righe nel set di risultati finale utilizzando il confronto e gli operatori logici.