Torna all'elenco degli articoli Articoli
Tempo di lettura: 6 minuti

Che cos'è la clausola WHERE di SQL?

La clausola WHERE è una parte fondamentale di SQL. Questa clausola filtra i risultati e applica condizioni alle query SQL. Viene utilizzata soprattutto insieme all'istruzione SELECT. Se siete alle prime armi con questo argomento, potete imparare le basi dell'SQL, compresa WHERE, nel nostro corso SQL Basics .

Questo articolo spiega chiaramente come utilizzare WHERE in una query SQL. Dopo averlo letto, avrete la sicurezza e le conoscenze necessarie per integrare WHERE nel vostro lavoro quotidiano.

Sintassi della clausola WHERE di SQL

La sintassi della clausola WHERE di SQL è semplice da capire. Deve essere inserita dopo la parola chiave FROM nella query SQL:

SELECT *
FROM table
WHERE id = 100

In questo esempio, c'è una colonna intera chiamata id. Stiamo selezionando tutte le righe in cui il valore della colonna id è uguale a 100.

Esempi di clausole WHERE in SQL

Uno dei modi migliori per imparare l'SQL è usarlo, quindi vediamo alcuni esempi di utilizzo della clausola WHERE. Potrete osservare quanto sia utile in situazioni reali!

Immaginiamo di gestire e possedere una palestra. Quando le persone si iscrivono alla palestra, ci forniscono alcune informazioni di base. Queste vengono memorizzate nella nostra tabella members che contiene un ID univoco per ogni iscritto, il suo nome e cognome, la sua età e la data di iscrizione alla palestra.

idFirstNameLastNameAgeDateJoined
1WillSmith522020-08-23
2BradPitt562018-06-15
3TomHanks642017-02-27
4AngelinaJolie452019-04-02
5MerylStreep712014-03-21

Se siete alle prime armi con l'SQL o se avete bisogno di rinfrescare la vostra conoscenza dell'istruzione SELECT, prendetevi un momento per leggere questo articolo. SELECT apparirà in tutto questo pezzo, quindi è importante che lo comprendiate.

Usare WHERE con i numeri

Se vogliamo recuperare i dettagli di uno dei nostri membri e conosciamo il suo id univoco, possiamo scrivere una query come questa:

SELECT * 
FROM members 
WHERE id = 3

In questo modo si recuperano tutti i dati di questo membro, Tom Hanks:

idFirstNameLastNameAgeDateJoined
3TomHanks642017-02-27

Usare WHERE con il testo

L'esempio precedente ha utilizzato WHERE in combinazione con un valore numerico della colonna id. Tuttavia, è possibile utilizzare WHERE con molti tipi di dati diversi. Vediamo un esempio di utilizzo della clausola WHERE con un valore di testo. In questo caso, esamineremo le colonne VARCHAR FirstName e LastName.

SELECT * 
FROM members 
WHERE FirstName = 'Tom' AND LastName = 'Hanks'

Notate come i valori di testo che vogliamo abbinare siano circondati da apici singoli. È necessario eseguire questa operazione ogni volta che si include un valore di testo nella query. L'esecuzione della query restituisce i seguenti dati:

idFirstNameLastNameAgeDateJoined
3TomHanks642017-02-27

Fantastico! Questo è esattamente il risultato che volevamo.

Guardate di nuovo la query. Avete notato l'operatore AND? La clausola WHERE è spesso combinata con l'uso di tre diversi operatori SQL: AND, OR e NOT:

  • Una clausola WHERE con AND richiede che entrambe le condizioni siano vere.
  • Una clausola WHERE con OR richiede che una delle due condizioni sia vera.
  • Una clausola WHERE con NOT richiede che la condizione specificata non sia vera.

Provate voi stessi questi operatori modificando la query utilizzata in precedenza. Notate l'effetto che ha sui dati restituiti. Il modo migliore per comprendere appieno questi operatori è leggere i tutorial dedicati a questi operatori ed esercitarsi a scrivere query che includano gli operatori AND, OR e NOT. Ecco altri modi utili per esercitarsi con l'SQL online.

Uso di WHERE per ottenere un intervallo di valori

Il prossimo esempio prevede l'uso degli operatori di confronto (<,>,>=,<=,!=) in combinazione con l'operatore SQL AND che abbiamo appena trattato. Immaginiamo di voler indirizzare a tutti i cinquantenni un'offerta promozionale. Come possiamo isolare i membri con un'età compresa tra 50 e 59 anni? Guardate la query SQL qui sotto:

SELECT * 
FROM members 
WHERE Age >= 50 AND Age < 60

Prestate particolare attenzione alla sintassi che segue la parola chiave WHERE.

Questa query SQL, tradotta in inglese, recita semplicemente "Select all from members where age is greater or equal to 50 and age is less than 60". Eseguendola si ottiene questo risultato:

idFirstNameLastNameAgeDateJoined
1WillSmith522020-08-23
2BradPitt562018-06-15

Ecco fatto! Tutti i membri che hanno più di cinquant'anni sono stati trovati. Ora possiamo puntare su questi membri con la nostra prossima offerta speciale.

Questi sono solo alcuni dei modi in cui è possibile utilizzare la clausola SQL WHERE per restringere le query. Una delle cose più importanti in SQL è la capacità di filtrare una grande quantità di dati; la clausola WHERE aiuta a raggiungere questo obiettivo.

Uso di WHERE con UPDATE

La clausola WHERE può anche essere combinata con le istruzioni UPDATE e DELETE. UPDATE viene utilizzata per modificare i record esistenti nel database. L'istruzione DELETE viene utilizzata per rimuovere completamente un record dal database.

Come funziona l'uso di UPDATE in combinazione con la clausola WHERE? Immaginiamo che Angelina Jolie, membro della palestra, si sia recentemente sposata e abbia preso il cognome del marito. Dobbiamo aggiornare il suo cognome nel nostro database. Per farlo, si deve trovare id per Angelina Jolie e utilizzarlo nella query:

UPDATE members SET LastName = 'Clooney' WHERE id = 4

La colonna che si desidera aggiornare segue la parola chiave SET. È molto importante includere la clausola WHERE quando si utilizza l'istruzione UPDATE; in caso contrario, LastName verrà impostato su "Clooney" per tutti i record della tabella.

Ora vediamo l'effetto di questa query sul nostro set di dati eseguendo la seguente query:

SELECT id, FirstName, LastName 
FROM members 
WHERE id = 4
idFirstNameLastName
4AngelinaClooney

Successo! Come si può vedere, i dati sono stati aggiornati correttamente. UPDATE è uno strumento potente e consente di aggiornare qualsiasi valore errato nel set di dati.

Uso di WHERE con DELETE

E se volessimo rimuovere completamente un record dalla nostra tabella di database? L'uso di WHERE in combinazione con l'istruzione DELETE lo rende possibile. La sintassi di DELETE è semplice e, applicata al nostro esempio, si presenta come segue:

DELETE FROM members 
WHERE id = 4

Utilizziamo la clausola WHERE per specificare esattamente il record che vogliamo eliminare. È importante notare che se diversi record hanno lo stesso valore id (in questo caso, 4), tutti i record verranno cancellati dalla tabella.

Fate molta attenzione quando usate l'istruzione DELETE; è una buona idea usare sempre SELECT prima i record, in modo da sapere esattamente cosa state cancellando.

Possiamo vedere l'effetto dell'istruzione DELETE selezionando tutti i record:

SELECT * 
FROM members 

L'esecuzione di questa query SQL produce il seguente insieme di risultati:

idFirstNameLastNameAgeDateJoined
1WillSmith522020-08-23
2BradPitt562018-06-15
3TomHanks642017-02-27
5MerylStreep712014-03-21

Trovare dati esatti con la clausola WHERE di SQL

Ora avete la possibilità di trovare e interagire con i dati esatti che desiderate. WHERE è uno strumento estremamente potente nel vostro arsenale. Questa clausola può essere utilizzata insieme a UPDATE, DELETE e SELECT. Ciò consente di manipolare e presentare i dati in innumerevoli modi: le possibilità sono infinite!

Se volete continuare a imparare l'SQL utilizzando una risorsa efficace e comprovata, prendete in considerazione il nostro corso SQL Basics , che vi fornirà le conoscenze fondamentali dell'SQL.