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

L'operatore SQL BETWEEN

Gli operatori di confronto SQL sono strumenti essenziali per filtrare i dati nelle query di database. Tra questi operatori, l'operatore TRA si distingue come strumento importante per specificare gli intervalli all'interno delle serie di dati.

Gli operatori di confronto SQL, come BETWEEN, sono utili per filtrare i dati nelle query di database. L'operatore BETWEEN consente di selezionare le righe all'interno di un determinato intervallo, rendendolo ideale per attività come la segmentazione di un pubblico per fasce d'età, l'identificazione di soglie per gli articoli tra determinate quantità o la categorizzazione delle prestazioni in base ai punteggi degli esami.

In questo articolo, esamineremo i fondamenti dell'operatore SQL BETWEEN. Ci concentreremo su esempi pratici e consigli realistici per sfruttarlo al meglio. Che siate principianti di SQL o vogliate migliorare le vostre capacità, la comprensione dell'operatore SQL BETWEEN migliorerà le vostre query SQL.

Se siete alle prime armi con l'SQL, perché non date un'occhiata al nostro SQL per principianti corso? Se state cercando di rivedere e consolidare le vostre competenze in SQL, il nostro corso Pratica su SQL vi porterà più avanti nel vostro percorso di apprendimento.

Detto questo, iniziamo a scoprire le potenzialità di SQL BETWEEN!

Capire l'operatore SQL BETWEEN

Sintassi di base di BETWEEN

L'operatore SQL BETWEEN segue una sintassi semplice. Avete difficoltà a ricordare la sintassi SQL e i nomi degli operatori? Non preoccupatevi, ci pensiamo noi con il nostro SQL Cheat Sheet!

La struttura tipica di BETWEEN è la seguente:

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

Analizziamo la sintassi:

  • SELECT: Specifica le colonne da cui recuperare i dati.
  • FROM: La tabella che memorizza i dati.
  • WHERE: Filtra le righe in base a criteri specifici.
  • BETWEEN: L'operatore BETWEEN stesso.
  • value1: Il limite inferiore dell'intervallo.
  • value2: Il limite superiore dell'intervallo.

Esempio pratico di BETWEEN

È importante sapere che l'operatore BETWEEN include sia il limite inferiore che quello superiore. In altre parole, include i valori uguali a value1, value2 e qualsiasi valore compreso tra questi nell'insieme dei risultati. Illustriamo con un esempio.

Immaginiamo di lavorare in un grande magazzino e di voler recuperare tutte le informazioni sui prodotti il cui prezzo è compreso tra 12,99 e 19,99 dollari:

SELECT *
FROM products
WHERE price BETWEEN 12.99 AND 19.99;

Questa query restituirà tutte le righe della tabella products il cui prezzo è uguale a 12,99, 19,99 o uguale a qualsiasi prezzo tra 12,99 e 19,99. Come si vede, l'uso dell'operatore BETWEEN semplifica e chiarisce il codice, rendendolo più facile da leggere e da mantenere. Per altri esempi pratici per i principianti, consultate i nostri 10 esercizi per principianti su Pratica su SQL con le relative soluzioni.

Semplificazione delle query con BETWEEN

Forse avrete già notato che l'operatore BETWEEN è essenzialmente una scorciatoia per combinare gli operatori >= e <=. Usare la sintassi column_name BETWEEN value1 AND value2 equivale a dire column_name >= value1 AND column_name <= value2. Applicando questa sintassi alla nostra query precedente, i risultati finali saranno gli stessi:

SELECT *
FROM products
WHERE price >= 50 AND price <= 100;

Tuttavia, l'operatore BETWEEN fornisce una sintassi più compatta e ovvia rispetto all'uso degli operatori >= e <=. Semplifica la creazione di query, riduce gli errori e migliora la leggibilità, rendendolo il metodo consigliato per specificare le condizioni di intervallo nelle query SQL.

L'operatore NOT BETWEEN

In SQL si usa spesso l'operatore logico NOT per rimuovere dai dati le righe che non soddisfano la condizione data. Allo stesso modo, si può usare NOT BETWEEN per ottenere il risultato opposto dell'operatore BETWEEN.

In altre parole, l'operatore BETWEEN filtra i risultati all'interno dell' intervallo specificato. L'uso dell'operatore NOT BETWEEN filtra i risultati al di fuori dell' intervallo.

Consideriamo uno scenario in cui vogliamo estrarre tutti i dati dalla tabella customers in cui l'età dei clienti non è compresa tra 25 e 30 anni. È possibile ottenere questo risultato con l'operatore NOT BETWEEN:

SELECT *
FROM customers
WHERE age NOT BETWEEN 25 AND 30;

In questa query:

  • SELECT *: Specifica che vogliamo recuperare tutte le colonne.
  • FROM clienti: La tabella da cui recuperare i dati.
  • WHERE AGE IS NOT BETWEEN 25 AND 30: Seleziona le righe in cui il valore della colonna età è inferiore a 25 e superiore a 30.

Altri esempi di questo metodo possono essere l'individuazione di prodotti con quantità al di fuori di un intervallo specificato, la ricerca di dipendenti impiegati al di fuori di un determinato periodo di tempo o l'identificazione di consumatori con acquisti totali inferiori o superiori a un certo importo.

Uso dell'operatore BETWEEN con i valori di testo

Sebbene sia spesso associato a intervalli numerici, l'operatore SQL BETWEEN può essere applicato anche a valori di testo.

Immaginiamo di essere tornati allo scenario dei grandi magazzini con la tabella products. Utilizzando la colonna category (che contiene le categorie dei prodotti come valori di testo), vogliamo recuperare tutte le categorie che cadono in ordine alfabetico tra categorie specifiche.

SELECT *
FROM products
WHERE category BETWEEN 'Electronics' AND 'Toys and Games';

In questa query:

  • SELECT *: Indica che vogliamo recuperare tutte le colonne.
  • FROM prodotti: La tabella da cui verranno recuperati i dati.
  • WHERE category IS BETWEEN 'Electronics' AND 'Toys and Games': Filtra le righe per includere solo quelle il cui valore della colonna categoria è compreso tra 'Electronics' e 'Toys and Games' in ordine alfabetico , incluso.

Come si può vedere, l'uso dell'operatore SQL BETWEEN con i valori di testo consente di filtrare facilmente i dati in base all'ordine alfabetico. Un altro esempio potrebbe essere quello di recuperare le informazioni sui clienti i cui cognomi rientrano in uno specifico intervallo alfabetico:

SELECT *
FROM customers
WHERE last_name BETWEEN 'B' AND 'G';

Analogamente, nello scenario dei grandi magazzini, si possono filtrare le colonne che seguono una sequenza (ad esempio, i codici dei prodotti):

SELECT *
FROM products
WHERE product_code BETWEEN 'C100' AND 'C150';

Questi esempi dimostrano non solo la praticità dell'operatore BETWEEN, ma anche la sua versatilità nel filtrare dati non solo numerici.

Uso dell'operatore SQL BETWEEN con le date

L'operatore BETWEEN in SQL può essere utile anche per selezionare dati all'interno di specifici periodi di date.

Torniamo allo scenario dei grandi magazzini e immaginiamo di avere una tabella denominata orders con una colonna chiamata data_ordine che contiene le date in cui sono stati effettuati gli ordini. Vediamo come utilizzare questo metodo per recuperare tutti gli ordini effettuati tra la prima settimana di aprile 2024:

SELECT * FROM sales
WHERE sale_date BETWEEN '2024-04-01' AND '2024-04-07';

In questa query:

  • SELECT *: Indica che si vogliono recuperare tutte le colonne.
  • FROM sales: Indica la tabella da cui verranno recuperati i dati.
  • WHERE sales_date BETWEEN '2024-04-01' AND '2024-04-07': Filtra le righe a quelle il cui order_date cade tra il 1° aprile 2024 e il 7 aprile 2024 incluso.

Importante: quando si utilizza l'operatore BETWEEN con dati di data o timestamp, esso include sia la data di inizio che quella di fine, ma esclude la componente temporale. Scrivere '2024-04-07' è l'equivalente di '2024-04-07 00:00:00'. I risultati di questa query includeranno le righe da '2024-04-01 00:00:00' (cioè le 12 del 1° aprile) a '2024-04-07 00:00:00', il che significa che le vendite dopo la mezzanotte del 7 saranno escluse. Per superare questa limitazione, si potrebbe estendere la query in questo modo:

SELECT * FROM sales 
WHERE sale_date >= '2024-04-01' AND sale_date <= '2024-04-07';

Per evitare errori, è meglio utilizzare gli operatori <= (minore o uguale a) e >= (maggiore o uguale a), soprattutto se non si è sicuri del tipo di dati. Con questo metodo si include l'intero intervallo di date, compresi i timestamp all'interno delle date specificate.

È ora di fare pratica con l'operatore SQL BETWEEN

Per concludere, l'operatore SQL BETWEEN è uno strumento indispensabile nel vostro kit di strumenti SQL. Può essere utilizzato su diversi tipi di dati, tra cui numeri, testo e date. La sua sintassi semplice e la sua natura inclusiva lo rendono la scelta ideale per filtrare le righe in base a criteri specifici.

Tuttavia, è importante conoscere il comportamento di BETWEEN, soprattutto quando si tratta di valori di data e ora, per garantire l'affidabilità dei risultati. Sebbene l'operatore BETWEEN esprima le condizioni di intervallo in modo conciso, è meglio utilizzare la sintassi <= AND >= per includere un intervallo di date completo.

La comprensione della sintassi, degli usi e dei comportamenti di SQL BETWEEN consente di migliorare le prestazioni delle query e l'accuratezza del recupero dei dati. L'operatore BETWEEN è uno strumento indispensabile per gli esperti di SQL, che consente di ottimizzare i processi di database e di estrarre i dati in modo efficiente. Siete pronti ad approfondire? Provate il nostro Pratica su SQL e iniziate a creare le vostre query BETWEEN!