Corso
L'operatore SQL BETWEEN è uno strumento per filtrare valori all'interno di un determinato intervallo. Si include nell'istruzione SELECT per semplificare e migliorare la leggibilità delle query.
Se sei alle prime armi con SQL, ti consiglio di seguire i corsi Introduction to SQL e SQL Fundamentals per dare il via al tuo apprendimento di SQL e diventare un analista competente.
La risposta breve: cos'è l'operatore SQL BETWEEN?
L'operatore BETWEEN filtra e restituisce le righe di un dataset all'interno di un certo intervallo. Quando è incluso nell'istruzione SELECT, l'operatore BETWEEN restituisce i valori di inizio e fine indicati. Questo potente operatore può restituire valori in vari tipi di dati SQL, incluse date, numeri e stringhe.
Nell'esempio seguente, la query seleziona tutti i record dei dipendenti con stipendi compresi tra 50.000 e 60.000 dalla tabella employees. Ricorda che l'operatore BETWEEN è inclusivo, quindi sia 50.000 sia 60.000 saranno inclusi nel risultato.
-- Select all columns from the Employees table
SELECT *
FROM employees
-- Filter the results to include only employees with salaries between 50,000 and 60,000
WHERE salary BETWEEN 50000 AND 60000;
Sintassi dell'operatore SQL BETWEEN
L'operatore BETWEEN ha una sintassi semplice nell'istruzione SELECT per filtrare i valori. Si usa all'interno della clausola WHERE per specificare i limiti inferiore e superiore dell'intervallo di dati da filtrare.
-- Select the specified columns from the table
SELECT column_name(s)
FROM table_name
-- Filter the results to include only those where column_name values fall between (inclusive)
WHERE column_name BETWEEN value1 AND value2;
La cheat sheet di SQL di base di DataCamp torna utile anche se vuoi consultare la sintassi degli operatori più comuni, incluso BETWEEN.
Punti importanti da ricordare su SQL BETWEEN
Quando usi l'operatore BETWEEN, è importante notare che va inserito nella clausola WHERE dell'istruzione SELECT. Questo posizionamento garantisce che BETWEEN filtri la colonna indicata dalla clausola WHERE.
-- Select all columns from the Employees table
SELECT *
FROM employees
-- Filter the results to include only employees with employeee_id between 10 and 18
WHERE employee_id BETWEEN 10 AND 18;
L'operatore BETWEEN è preferibile per filtrare valori all'interno di intervalli perché offre un filtraggio conciso dei dati. La sintassi è semplice e migliora la leggibilità delle query quando si filtrano più condizioni.
Senza l'operatore BETWEEN, useremmo altri operatori per ottenere risultati simili. Nota l'inclusione degli operatori nella clausola WHERE, che rende la query meno leggibile e più complessa.
-- Select the first name, last name, and salary columns from the Employees table
SELECT first_name, last_name, salary
FROM employees
-- Filter the results to include only those employees whose salary is greater than or equal to 50,000
-- and less than or equal to 60,000
WHERE salary >= 50000 AND salary <= 60000;
La query è più leggibile e facile da capire con l'operatore BETWEEN.
-- Select the first name, last name, and salary columns from the Employees table
SELECT first_name, last_name, salary
FROM employees
-- Filter the results to include only those employees whose salary is between 50,000 and 60,000 (inclusive)
WHERE salary BETWEEN 50000 AND 60000;
Ricorda sempre che i valori specificati nell'operatore BETWEEN sono inclusi nei risultati. La query SQL restituirà i record in cui i valori sono inclusi come limiti superiore e inferiore dei dati.
Casi d'uso comuni di SQL BETWEEN
L'operatore BETWEEN ha diversi casi d'uso quando si filtrano i dati, tra cui il filtraggio di intervalli numerici o di date. Vediamoli.
Filtrare intervalli numerici con BETWEEN
L'operatore BETWEEN è comunemente usato per filtrare dati numerici. In questo scenario, puoi filtrare i dati per recuperare quelli all'interno di un certo intervallo. Nell'esempio seguente, filtriamo la tabella employees per restituire le righe con stipendi tra 62.000 e 70.000.
-- Select all columns from employees table
SELECT *
FROM employees
-- Filter the results to include only those employees whose salary is between 62,000 and 70,000 (inclusive)
WHERE salary BETWEEN 62000 AND 70000;
Filtrare intervalli di date con BETWEEN
L'operatore BETWEEN può anche filtrare i record all'interno di determinati intervalli di date. Questa applicazione è utile quando si analizzano dati con valori di data e ora.
Supponendo di avere una colonna chiamata hire_date nella tabella employees, possiamo usare l'operatore BETWEEN per filtrare le date e trovare i record dei dipendenti assunti in un periodo specifico.
-- Select all columns from employees table
SELECT *
FROM employees
-- Filter records where hire date is between January 1, 2022, and December 31, 2022 (inclusive)
WHERE hire_date BETWEEN '2022-01-01' AND '2022-12-31';
Combinare BETWEEN con altri operatori
Puoi anche combinare l'operatore BETWEEN con altri operatori per ottenere scenari di filtraggio complessi. Questa tecnica è importante se vuoi un filtraggio specifico. Nell'esempio seguente, abbiamo usato l'operatore di uguaglianza (=) nella clausola WHEN per filtrare le righe contenenti solo il reparto Sales. La query poi usa l'operatore BETWEEN per filtrare ulteriormente i record, includendo gli stipendi tra 50.000 e 60.000.
-- Select all columns from employees table
SELECT *
FROM employees
-- Filter records where department is 'Sales' and salary is between 50,000 and 60,000 (inclusive)
WHERE department = 'Sales' AND salary BETWEEN 50000 AND 60000;
Ti consiglio di esplorare la raccolta di corsi SQL di DataCamp per trovare il corso più adatto a te.
Limitazioni del comando SQL Between
Infine, diamo un'occhiata ad alcune limitazioni e alternative.
Limitazioni dell'operatore BETWEEN in SQL
Le possibili limitazioni dell'operatore SQL BETWEEN includono:
- Possibile confusione sui limiti inclusivi: Poiché l'operatore
BETWEENinclude i valori specificati come limiti superiore e inferiore, potrebbe causare confusione o risultati inattesi se usato in modo scorretto. - Problemi di performance con dataset di grandi dimensioni: Usare l'operatore
BETWEENsenza specificare indici potrebbe causare problemi di performance, soprattutto con dataset molto grandi.
Alternative all'operatore BETWEEN in SQL
Poiché l'operatore BETWEEN include i valori specificati come limiti inferiore e superiore, possiamo usare gli operatori minore di (<) e maggiore di (>) per ottenere un filtraggio esclusivo. Questa tecnica assicura che tali valori non siano inclusi nei risultati.
-- Select the first name, last name, and salary columns from the Employees table
SELECT first_name, last_name, salary
FROM employees
-- Filter the results to include only those employees whose salary is greater than 50,000
-- and less than 60,000 (exclusive)
WHERE salary > 50000 AND salary < 60000;
Conclusione
L'operatore BETWEEN in SQL è utile per filtrare valori all'interno di intervalli definiti. Capire l'importanza dell'uso di BETWEEN per il filtraggio e la manipolazione dei dati è fondamentale per gli analisti dei dati. Ti invito a continuare a esercitarti con l'operatore BETWEEN usando dataset diversi e vari tipi di dati SQL per migliorare le tue competenze in SQL.
L'apprendimento continuo ti aiuterà a distinguerti nel mondo professionale. Ti consiglio di seguire il corso avanzato Reporting in SQL e di valutare il percorso professionale completo Associate Data Analyst in SQL. Infine, DataCamp offre anche una SQL Associate Certification per valorizzare i tuoi risultati professionali nell'uso di SQL per l'analisi dei dati.
Domande frequenti
A cosa serve l'operatore SQL BETWEEN?
L'operatore SQL BETWEEN filtra i dati all'interno di un intervallo di valori.
Come si usa l'operatore SQL BETWEEN?
L'operatore SQL BETWEEN si usa all'interno della clausola WHERE per filtrare i dati delle colonne specificate.
Con quali tipi di dati SQL posso usare l'operatore BETWEEN?
L'operatore BETWEEN può essere usato con diversi tipi di dati, inclusi date, numeri e stringhe.
Posso usare l'operatore BETWEEN insieme ad altri operatori?
Puoi includere altri operatori nella clausola WHERE prima dell'operatore BETWEEN per un filtraggio avanzato.
Quali alternative dovrei usare per escludere alcuni record dai miei dati?
Dovresti usare gli operatori > e < per evitare di includere i valori dei limiti inferiore e superiore quando usi l'operatore SQL BETWEEN.


