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).
Commenti recenti