In SQL, filtrare i dati di una tabella è un'operazione molto importante per estrarre solo le informazioni di interesse. L'uso della parola chiave WHERE è il principale strumento per effettuare questa operazione. Cambiando le condizioni all'interno della clausola WHERE, è possibile selezionare righe specifiche della tabella in modo da ottenere solo le informazioni necessarie.
Operatori AND e OR nella Where SQL
Per poter scrivere filtri complessi a piacere nella clausola WHERE, si possono utilizzare gli operatori AND e OR per combinare più condizioni tra di loro. Ad esempio, se volessimo selezionare solo le righe in cui la colonna "età" è maggiore o uguale a 25 e la colonna "provincia" è "Roma", possiamo utilizzare l'operatore AND:
SELECT *
FROM tabella
WHERE eta >= 25
AND provincia = 'Roma';
Se invece avessimo voluto selezionare le righe in cui la colonna "provincia" fosse "Roma" o la colonna "provincia" fosse "Milano", avremmo utilizzato l'operatore OR:
SELECT *
FROM tabella
WHERE provincia = 'Roma'
OR provincia = 'Milano';
Operatore IN:
Un altro modo per filtrare più valori con una sola query è utilizzare l'operatore IN. Ad esempio, per selezionare le righe in cui la colonna "provincia" è "Roma", "Milano" o "Torino", possiamo utilizzare la seguente query, più veloce da scrivere rispetto all'OR:
SELECT *
FROM tabella
WHERE provincia IN ('Roma', 'Milano', 'Torino');
Filtro sulle date
Se vogliamo filtrare su colonne contenenti date, dobbiamo tenere conto della sintassi specifica del DBMS in uso. Ad esempio, utilizzando MySQL, per selezionare le righe in cui la colonna "data" è successiva al 2020-01-01, possiamo utilizzare la seguente query:
SELECT *
FROM tabella
WHERE data > '2020-01-01';
Valori NULL
Infine, è importante tenere conto dei NULL. Per selezionare le righe in cui la colonna "provincia" è NULL, possiamo utilizzare 'IS NULL', ad esempio:
SELECT *
FROM tabella
WHERE provincia IS NULL;
Al contrario, per selezionare le righe in cui la colonna "provincia" non è null, possiamo utilizzare 'IS NOT NULL':
SELECT * FROM tabella WHERE provincia IS NOT NULL;
Conclusioni e approfondimenti
In generale, filtrare i dati di una tabella tramite la clausola WHERE e gli altri operatori del linguaggio SQL è essenziale per estrarre solo le informazioni di interesse. Nel nostro esempio abbiamo visto come utilizzare gli operatori AND e OR, l'operatore IN, come filtrare le date e come gestire i valori NULL. Ricordate che ogni DBMS ha la sua sintassi specifica, quindi è importante consultare la documentazione ufficiale per gli esempi precisi.
In questo articolo del mio blog parlo di come utilizzare la condizione WHERE su colonne di tipo Datetime di SQL Server
Invece in questo video sul mio canale Youtube parlo di come scrivere le prima query con SQL e utilizzare l'istruzione WHERE