Skip to main content

Selezione dei dati all'interno di intervalli in SQL

Biblical Series I: Introduction to the Idea of God (Aprile 2025)

Biblical Series I: Introduction to the Idea of God (Aprile 2025)
Anonim

Structured Query Language (SQL) offre agli utenti del database la possibilità di creare query personalizzate per estrarre informazioni dai database. In un articolo precedente, abbiamo esplorato l'estrazione di informazioni da un database utilizzando query SQL SELECT. Espandiamo la discussione ed esploriamo come è possibile eseguire query avanzate per recuperare dati che soddisfano condizioni specifiche.Consideriamo un esempio basato sul database Northwind comunemente utilizzato, che viene spesso fornito con i prodotti di database come tutorial.

Ecco un estratto dalla tabella dei prodotti del database:

Tabella del prodotto
Codice prodottoNome del prodottoIDFornitoreQuantitàPerUnitàPrezzo unitarioUnitsInStock
1Chai110 scatole x 20 borse18.0039
2Chang124 - 12 bottiglie di oz19.0017
3Sciroppo d'anice112 - flaconi da 550 ml10.0013
4Condimento Cajun dello Chef Anton2Vasetti da 48 - 6 once22.0053
5Gumbo Mix dello Chef Anton236 scatole21.350
6Diffusione di Boysenberry della nonna3Vasetti da 12 - 8 once25.00120
7Pere secche organiche dello zio Bob312 - 1 libbra pkgs.30.0015

Semplici condizioni al contorno

Le prime restrizioni che inseriremo nella nostra ricerca riguardano semplici condizioni al contorno. Possiamo specificarli nella clausola WHERE della query SELECT, utilizzando semplici istruzioni condizionali create con operatori standard, come <,>,> = e <=.

Innanzitutto, proviamo una semplice query che ci consente di estrarre un elenco di tutti i prodotti nel database che hanno un Prezzo unitario superiore alle 20.00:

SELECT ProductName, UnitPrice FROM prodotti WHERE Prezzo unitario> 20,00

Questo produce un elenco di quattro prodotti, come mostrato di seguito:

ProductName UnitPrice ------- -------- Gumbo Mix dello Chef Anton 21,35 Stagionatura Cajun dello Chef Anton 22.00 Spread Boysenberry della nonna 25.00 Pere essiccate biologiche dello Zio Bob 30.00

Possiamo anche utilizzare la clausola WHERE con valori stringa. Questo equivale fondamentalmente ai caratteri, con A che rappresenta il valore 1 e Z che rappresenta il valore 26. Ad esempio, potremmo mostrare tutti i prodotti con nomi che iniziano con U, V, W, X, Y o Z con la seguente query:

SELECT ProductName FROM prodotti WHERE ProductName> = 'T'

Che produce il risultato:

ProductName ------- Le pere secche organiche dello zio Bob

Esprimere intervalli utilizzando i confini

La clausola WHERE ci consente inoltre di implementare una condizione di intervallo su un valore utilizzando più condizioni. Ad esempio, se volessimo utilizzare la nostra query sopra e limitare i risultati a prodotti con prezzi compresi tra le 15.00 e le 20.00, potremmo utilizzare la seguente query:

SELECT ProductName, UnitPrice FROM prodotti WHERE Prezzo unitario> 15,00 E Prezzo unitario <20,00

Questo produce il risultato mostrato di seguito:

ProductName UnitPrice ------- -------- Chai 18.00 Chang 19.00

Esprimere intervalli con TRA

SQL fornisce anche una sintassi BETWEEN di scorciatoia che riduce il numero di condizioni che è necessario includere e rende la query più leggibile. Ad esempio, invece di utilizzare le due condizioni WHERE di cui sopra, potremmo esprimere la stessa query di:

SELECT ProductName, UnitPrice FROM prodotti WHERE UnitPrice TRA 15.00 E 20.00

Come con le nostre altre clausole di condizione, BETWEEN funziona anche con valori di stringa. Se volessimo produrre una lista di tutti i paesi che iniziano con V, W o X, potremmo usare la query:

SELECT ProductName FROM prodotti WHERE ProductName TRA "A" e "D"

Che produce il risultato:

ProductName ------- Sciroppo d'anice Chai Chang Chef Anton's Gumbo Mix Lo chef Anton's Cajun Seasoning

La clausola WHERE è una parte potente del linguaggio SQL che consente di limitare i risultati ai valori che rientrano negli intervalli specificati. È molto comunemente usato per aiutare a esprimere la logica di business e dovrebbe essere una parte del toolkit di ogni database professionale.

È spesso utile incorporare le clausole comuni in una stored procedure per renderle accessibili a coloro che non dispongono della conoscenza di SQL.