9th Dec 2022 Tempo di lettura: 4 minuti Uso degli operatori AND, OR e NOT in SQL Andrew Bone sql imparare sql sql operators where Indice Sintassi di SQL AND Sintassi dell'operatore SQL OR Sintassi di SQL NOT Combinazione degli operatori AND, OR e NOT Espandere l'SQL con gli operatori AND, OR e NOT AND OR e sono importanti operatori logici in SQL. Consentono di combinare le condizioni utilizzate per filtrare i record. Vengono utilizzati soprattutto in combinazione con le clausole NOT WHERE o HAVING. Inoltre, questo argomento è una domanda piuttosto comune nei colloqui di lavoro in SQL. Per aiutarvi a comprendere appieno questi operatori, vi illustrerò alcuni esempi, spiegandovi a fondo la sintassi e lo scopo di ciascuno di essi. Esercitarsi con esempi come questi è uno dei metodi migliori per imparare l'SQL. Per fare un esempio, immaginiamo di gestire e possedere una palestra con diverse sedi negli Stati Uniti. Quando le persone si iscrivono, ci forniscono alcune informazioni di base. Queste vengono memorizzate nella nostra tabella members che contiene un ID univoco per ogni iscritto, oltre al nome e al cognome, all'età, alla data di iscrizione e alla sede della palestra. idFirstNameLastNameAgeDateJoinedLocation 1WillSmith522020-08-23Los Angeles 2BradPitt562018-06-15San Francisco 3TomHanks642017-02-27San Diego 4AngelinaJolie452019-04-02Los Angeles 5MerylStreep712014-03-21Manhattan Sintassi di SQL AND La sintassi dell'operatore AND è la seguente: SELECT column_1, column_2, … column_n FROM table WHERE condition_1 AND condition_2 AND condition_n Quando si combinano più condizioni utilizzando l'operatore AND, verranno restituite tutte le righe che soddisfano tutte le condizioni date. Ora è il momento di applicare l'operatore AND al nostro scenario della palestra. Supponiamo di voler trovare tutti i membri che hanno meno di 50 anni e vivono a Los Angeles. Come possiamo ottenere questo risultato con una query SQL? SELECT * FROM members WHERE Age < 50 AND Location = 'Los Angeles'; idFirstNameLastNameAgeDateJoinedLocation 4AngelinaJolie452019-04-02Los Angeles Age Anche se abbiamo due membri con Location di Los Angeles, solo uno di loro ha meno di 50 anni. Ricordate che quando si utilizza l'operatore SQL AND, entrambe le condizioni devono essere soddisfatte affinché venga restituito un record. Sintassi dell'operatore SQL OR La sintassi dell'operatore OR è la seguente: SELECT column_1, column_2, … column_n FROM table WHERE condition_1 OR condition_2 OR condition_n Quando si combinano più condizioni utilizzando l'operatore OR, verranno restituite tutte le righe che soddisfano una qualsiasi delle condizioni date. Possiamo applicare questa funzione alla nostra tabella members scrivendo la seguente query: SELECT * FROM members WHERE Location = 'Los Angeles' OR LastName = 'Hanks' Con questa query, vogliamo recuperare le righe in cui LastName è Hanks o Location è Los Angeles. L'esecuzione della query produce il seguente risultato: idFirstNameLastNameAgeDateJoinedLocation 1WillSmith522020-08-23Los Angeles 3TomHanks642017-02-27San Diego 4AngelinaJolie452019-04-02Los Angeles Si noti come il nostro membro Tom Hanks sia incluso nel set di risultati anche se la sua palestra Location non è Los Angeles. Questo perché soddisfa la seconda condizione che abbiamo specificato: il suo cognome è "Hanks". Ricordate: quando si utilizza l'operatore SQL OR, verranno restituite tutte le righe che soddisfano una qualsiasi delle condizioni indicate. Sintassi di SQL NOT La sintassi dell'operatore NOT è la seguente: SELECT column_1, column_2, … column_n FROM table WHERE NOT condition Quando si combinano più condizioni utilizzando l'operatore NOT, verranno restituite tutte le righe che non soddisfano le condizioni date. Possiamo utilizzare questo operatore con il nostro esempio di palestra in molti modi utili. E se volessimo trovare tutti gli iscritti che non si trovano a Los Angeles? Utilizzando l'operatore NOT, possiamo semplicemente scrivere: SELECT * FROM members WHERE NOT Location = 'Los Angeles' L'esecuzione di questa query produce il seguente set di dati: idFirstNameLastNameAgeDateJoinedLocation 2BradPitt562018-06-15San Francisco 3TomHanks642017-02-27San Diego 5MerylStreep712014-03-21Manhattan Si può vedere chiaramente l'effetto dell'operatore NOT. Non sono stati restituiti membri con Location impostato su Los Angeles. Combinazione degli operatori AND, OR e NOT In alcune situazioni è necessario combinare questi operatori per specificare esattamente i dati desiderati. Ecco di nuovo la nostra tabella members è il set di dati che interrogheremo in questo esempio. idFirstNameLastNameAgeDateJoinedLocation 1WillSmith522020-08-23Los Angeles 2BradPitt562018-06-15San Francisco 3TomHanks642017-02-27San Diego 4AngelinaJolie452019-04-02Los Angeles 5MerylStreep712014-03-21Manhattan Supponiamo di voler recuperare i dati dei membri che rispondono a criteri molto specifici. Vogliamo i membri che sono: Hanno più di 50 anni. Si trovano a Los Angeles o a Manhattan. Possiamo ottenere questo risultato scrivendo la seguente query SQL: SELECT * FROM members WHERE AGE > 50 AND (Location='Los Angeles' OR Location='Manhattan') Notate come abbiamo usato le parentesi per raggruppare gli operatori. In questo modo SQL sa esattamente come interpretare l'ordine degli operatori. Il risultato di questa query è: idFirstNameLastNameAgeDateJoinedLocation 1WillSmith522020-08-23Los Angeles 5MerylStreep712014-03-21Manhattan Si può notare come la combinazione degli operatori AND, OR e NOT in modi diversi possa aiutarci a filtrare con precisione i nostri dati. Espandere l'SQL con gli operatori AND, OR e NOT Ora avete la possibilità di recuperare i dati esatti che desiderate. Questo apre molte possibilità. È possibile utilizzare la clausola WHERE insieme a AND, OR e NOT, consentendo di essere molto precisi nelle query SQL. Leggere i nostri post sul blog è un ottimo modo per imparare la sintassi SQL e vedere i diversi scenari in cui SQL può essere utile. Tuttavia, se volete una guida veramente completa alla scrittura delle query, prendete in considerazione il nostro corso SQL Basics che vi permetterà di fare molta pratica. Tags: sql imparare sql sql operators where