DEV Community

Nicola Iantomasi
Nicola Iantomasi

Posted on

Guida SQL: istruzione Where

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';
Enter fullscreen mode Exit fullscreen mode

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';
Enter fullscreen mode Exit fullscreen mode

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';
Enter fullscreen mode Exit fullscreen mode

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;
Enter fullscreen mode Exit fullscreen mode

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;
Enter fullscreen mode Exit fullscreen mode

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

Top comments (0)