WHERE
Scegliere quali righe vedere
Sezione intitolata “Scegliere quali righe vedere”WHERE serve a dire al database: mostrami solo le righe che rispettano questa condizione.
Senza WHERE, una query legge tutte le righe della tabella. Con WHERE, invece, restringi il risultato.
È come cercare in una rubrica solo le persone che vivono a Roma, invece di leggere tutti i contatti uno per uno.
SELECT nome, cittaFROM clientiWHERE citta = 'Roma';Questa query significa:
“Mostrami nome e città dei clienti che hanno
Romanella colonnacitta.”
Se nella tabella ci sono clienti di città diverse, vedrai solo quelli di Roma.
La condizione dopo WHERE
Sezione intitolata “La condizione dopo WHERE”La parte importante è questa:
WHERE citta = 'Roma'SQL controlla la condizione una riga alla volta.
Se la riga ha Roma nella colonna citta, entra nel risultato. Se ha Milano, Napoli o qualsiasi altro valore, viene esclusa.
Nota: I testi si scrivono di solito tra apici singoli, come
'Roma'. I numeri invece si scrivono senza apici, come18.
Un esempio con i numeri
Sezione intitolata “Un esempio con i numeri”Ora immaginiamo una tabella ordini:
| id | totale |
|---|---|
| 1 | 35.00 |
| 2 | 120.00 |
| 3 | 89.90 |
Per vedere solo gli ordini sopra 100, scrivi:
SELECT id, totaleFROM ordiniWHERE totale > 100;Il risultato sarà:
| id | totale |
|---|---|
| 2 | 120.00 |
La query non ha “saltato” le altre righe per caso. Le ha controllate e ha tenuto solo quella in cui totale > 100 era vero.
Gli operatori più comuni
Sezione intitolata “Gli operatori più comuni”Dopo WHERE puoi usare diversi operatori:
| Operatore | Significato | Esempio |
|---|---|---|
= | uguale a | citta = 'Roma' |
<> | diverso da | stato <> 'annullato' |
> | maggiore di | totale > 100 |
< | minore di | eta < 18 |
>= | almeno | prezzo >= 10 |
<= | al massimo | quantita <= 5 |
Non serve impararli tutti a memoria subito. Li userai così spesso che diventeranno familiari.
Testi, numeri e date
Sezione intitolata “Testi, numeri e date”Il valore che confronti deve essere scritto nel modo giusto.
Per un testo usi gli apici:
SELECT nomeFROM clientiWHERE citta = 'Roma';Per un numero no:
SELECT id, totaleFROM ordiniWHERE totale >= 50;Per una data si usa spesso il formato AAAA-MM-GG:
SELECT id, data_ordineFROM ordiniWHERE data_ordine >= '2026-01-01';Il database capisce che quel testo rappresenta una data se la colonna data_ordine è stata creata con un tipo adatto.
Una distinzione importante
Sezione intitolata “Una distinzione importante”Con SELECT, WHERE filtra solo quello che vedi. Non cambia i dati.
Ma più avanti userai WHERE anche con comandi come UPDATE e DELETE. Lì diventa molto più delicato, perché decide quali righe modificare o cancellare.
Attenzione: Prima di modificare o cancellare dati, controlla sempre il filtro con una
SELECT. È una piccola abitudine che evita grandi guai.
Riepilogo rapido
Sezione intitolata “Riepilogo rapido”WHEREfiltra le righe.- La condizione può essere vera o falsa.
- SQL controlla la condizione riga per riga.
- Con
UPDATEeDELETE, unWHEREsbagliato può toccare troppe righe.