Operatore BETWEEN di MySQL spiegato (con esempi pratici)

3. Specificare un intervallo numerico

Come utilizzare BETWEEN per intervalli numerici

L’operatore BETWEEN è molto comodo per specificare intervalli numerici. Ad esempio, se vuoi estrarre i dipendenti il cui stipendio è compreso tra 50.000 e 100.000, puoi scrivere la query così:

SELECT employee_id, name, salary
FROM employees
WHERE salary BETWEEN 50000 AND 100000;

Dati di esempio

employee_idnamesalary
1Smith45000
2Johnson55000
3Brown75000
4Taylor120000

Risultato dell’esecuzione

employee_idnamesalary
2Johnson55000
3Brown75000

Nella query sopra, vengono selezionati solo i dipendenti il cui stipendio rientra nell’intervallo da 50.000 a 100.000.

Differenza dagli operatori di confronto

Se scrivi la stessa condizione usando gli operatori di confronto, avrà questo aspetto:

SELECT employee_id, name, salary
FROM employees
WHERE salary >= 50000 AND salary <= 100000;

Usare BETWEEN rende la query più concisa e ne migliora la leggibilità. Questo è particolarmente utile quando hai più condizioni di intervallo, perché BETWEEN mantiene la query più facile da leggere.

4. Specificare un intervallo di date

Come utilizzare BETWEEN con dati di tipo data

BETWEEN può anche essere usato per specificare un intervallo per dati di tipo data. Ad esempio, per estrarre gli ordini da una tabella degli ordini compresi tra il 1 gennaio 2024 e il 31 dicembre 2024, puoi scrivere la query così:

SELECT order_id, customer_id, order_date
FROM orders
WHERE order_date BETWEEN '2024-01-01' AND '2024-12-31';

Dati di esempio

order_idcustomer_idorder_date
11012024-01-15
21022024-05-30
31032025-03-01

Risultato dell’esecuzione

order_idcustomer_idorder_date
11012024-01-15
21022024-05-30

Come mostrato sopra, l’operatore BETWEEN estrae i dati che rientrano nell’intervallo di date specificato.

Gestione dei valori temporali

Se i tuoi dati di tipo data includono valori di tempo, devi fare attenzione. Ad esempio, se la colonna order_date è di tipo DATETIME e include l’ora, l’uso di BETWEEN prenderà in considerazione l’intervallo dalla mezzanotte esatta della data di inizio alla mezzanotte esatta della data di fine, a meno che non specifichi correttamente l’ora.

WHERE order_date BETWEEN '2024-01-01 00:00:00' AND '2024-12-31 23:59:59';

5. Specificare un intervallo di stringhe

Come utilizzare BETWEEN con dati di tipo stringa

L’operatore BETWEEN può anche essere applicato a dati di tipo stringa. Ad esempio, se vuoi cercare i prodotti i cui nomi rientrano nell’intervallo da ‘A’ a ‘M’, puoi scrivere la query così:

SELECT product_id, product_name
FROM products
WHERE product_name BETWEEN 'A' AND 'M';

Dati di esempio

product_idproduct_name
1Apple
2Banana
3Mango
4Orange

Risultato dell’esecuzione

product_idproduct_name
1Apple
2Banana
3Mango

Note sull’ordine alfabetico

Quando si specifica un intervallo per valori stringa, si presume che le stringhe siano ordinate alfabeticamente. A seconda delle impostazioni del database, la sensibilità al maiuscolo/minuscolo può anche influire, quindi è necessario fare attenzione nella progettazione e nella scrittura del codice. Per esempio, 'a' e 'A' potrebbero essere trattati come valori diversi.

6. Note importanti quando si utilizza BETWEEN

Cose da tenere presente quando si definiscono gli intervalli

Quando si usa l’operatore BETWEEN, è necessario prestare attenzione all’ordine dei valori di inizio e fine. Se il valore di inizio è maggiore del valore di fine, la query potrebbe restituire risultati inattesi.

SELECT * FROM table_name WHERE column_name BETWEEN 100 AND 50;  -- Unexpected result

Inoltre, poiché BETWEEN include entrambi gli estremi dell’intervallo specificato, è importante scegliere con cura i valori di inizio e fine.

Utilizzo degli indici e efficienza

L’operatore BETWEEN fornisce generalmente prestazioni comparabili a quelle degli operatori di confronto standard. Tuttavia, per ottimizzare le prestazioni delle query, è necessario impostare gli indici appropriati. Quando gli indici sono configurati correttamente, le query che utilizzano l’operatore BETWEEN possono essere eseguite più rapidamente. Per esempio, aggiungere un indice a una colonna di tipo data consente di eseguire le query su intervalli di date in modo più efficiente.

7. Query pratiche ed esempi avanzati

Utilizzare BETWEEN con più colonne

.

L’operatore BETWEEN può essere utilizzato anche combinando più colonne. Ad esempio, se vuoi eseguire una ricerca per intervallo specificando contemporaneamente sia il prezzo del prodotto sia la quantità in magazzino, puoi scrivere una query come questa:

SELECT product_name, price, stock
FROM products
WHERE price BETWEEN 1000 AND 5000
AND stock BETWEEN 50 AND 200;

Questa query cerca i prodotti il cui prezzo è compreso nell’intervallo da 1.000 a 5.000 e la cui scorta è compresa nell’intervallo da 50 a 200.

Esempio pratico di NOT BETWEEN

Utilizzando la forma negativa NOT BETWEEN, è possibile estrarre i dati che si trovano al di fuori di uno specifico intervallo. Ad esempio, se vuoi trovare i dipendenti il cui stipendio è inferiore a 50.000 o superiore a 100.000, puoi scrivere:

SELECT employee_id, name, salary
FROM employees
WHERE salary NOT BETWEEN 50000 AND 100000;

Risultato dell’esecuzione

employee_idnamesalary
1Smith45000
4Taylor120000

Questa query recupera i dipendenti il cui stipendio non rientra nell’intervallo da 50.000 a 100.000. L’uso di NOT BETWEEN semplifica l’estrazione dei dati con la condizione opposta.

8. Esempio visivo di una query

Per mostrare visivamente i risultati della query, può essere efficace utilizzare un diagramma semplice. Ad esempio, puoi usare un diagramma come quello mostrato di seguito per spiegare come funziona BETWEEN:

Price range: [----- 1000 ---- 5000 -----]
Product A price: 3000 (in range)
Product B price: 6000 (out of range)

Utilizzare un diagramma di questo tipo rende più facile comprendere intuitivamente se i dati rientrano nell’intervallo specificato nella query.

9. Riepilogo

L’operatore BETWEEN è uno strumento molto utile in MySQL quando è necessario cercare all’interno di un intervallo specificato. Può essere applicato a dati numerici, data e stringa, consentendo di scrivere query in modo conciso ed efficiente. Tuttavia, è importante comprendere alcuni punti chiave, come il fatto che includa entrambi gli estremi dell’intervallo e come gli indici possano influenzare le prestazioni. Utilizzando queste conoscenze, è possibile ottimizzare le prestazioni delle query del database ed estrarre in modo efficiente i dati necessari.

10. Riferimenti

Per ulteriori dettagli sulle query e sui modelli di utilizzo aggiuntivi, è consigliabile consultare la documentazione ufficiale di MySQL e libri specializzati sui database. Inoltre, provando direttamente le query, potrai approfondire la tua comprensione dell’operatore BETWEEN.