Tempo di lettura: 2 minuti

Per condizionare le query si usa WHERE. La sintassi è:

SELECT nome_colonna (, nome_colonna2, ...) FROM nome_tabella WHERE nome_colonna <operatore> valore;

Iniziamo a vedere gli operatori che possono essere usati:

Operatore Descrizione
= Uguale
<> (oppure !=) Non uguale
> Maggiore di
< Minore di
>= Maggiore o uguale a
<= Minore o uguale a
BETWEEN Compreso in un intervallo
LIKE Cerca una corrispondenza

Uso di WHERE

Prendiamo ad esempio la tabella persone del nostro ipotetico database:

nome cognome indirizzo paese anni
Paolo Bianchi Via Roma, 1 Milano 23
Giuseppe Rossi Via Milano, 1 Roma 32
Francesco Verdi Via Pisa, 1 Roma 28

e decidiamo di selezionare solo le persone che vivono a Roma.
Utilizzeremo la seguente query:

SELECT * FROM persone WHERE paese = "Roma";

Il nostro risultato sarà:

nome cognome indirizzo paese anni
Giuseppe Rossi Via Milano, 1 Roma 32
Francesco Verdi Via Pisa, 1 Roma 28

Nota sull’uso degli apici

Generalmente si usano i singoli apici (anche se alcuni sistemi accettano anche i doppi apici) per racchiudere delle variabili di testo. I valori numerici non si racchiudono tra apici.

Un esempio errato:

SELECT * FROM persone WHERE paese=Roma;

La precedente query riporterà un errore. Lo stesso esempio corretto:

SELECT * FROM persone WHERE paese="Roma";

Nota sui commenti

-- I 2 trattini identificano un commento
-- I commenti non vengono elaborati dal sistema

La condizione LIKE

La condizione LIKE permette di effettuare ricerche per corrispondenza parziale.
Sintassi:

SELECT nome_colonna FROM tabella WHERE nome_colonna LIKE campione;

Il simbolo di % è un carattere jolly che useremo per definire i caratteri mancanti. Vediamo qualche esempio:

SELECT * FROM persone WHERE nome LIKE "G%";

seleziona tutti i records del database che nel testo del campo nome iniziano per G.

SELECT * FROM persone WHERE nome LIKE "%o";

seleziona tutti i records in cui il testo nel campo nome termina per o.

SELECT * FROM persone WHERE cognome LIKE "%ss%";

seleziona tutti i records in cui il valore del campo cognome contiene ss (ad esempio Rossi).