Il Linguaggio di query strutturato (SQL) fornisce 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 le query SQL SELECT. Espandiamo questa discussione ed esploriamo come puoi eseguire prestazioni avanzate interrogazioni per recuperare i dati che corrisponde a condizioni specifiche.
Consideriamo un esempio basato sull'uso comune Vento del nord database, che viene spesso fornito con i prodotti database come tutorial.
Ecco un estratto dalla tabella Product del database:
Numero identificativo del prodotto | Nome del prodotto | IDfornitore | Quantità per unità | Prezzo unitario | UnitsInStock |
---|---|---|---|---|---|
1 | Chai | 1 | 10 scatole x 20 sacchetti | 18.00 | 39 |
2 | Chang | 1 | Bottiglie da 24 - 12 once | 19.00 | 17 |
3 | Sciroppo Di Anice | 1 | Bottiglie da 12 - 550 ml | 10.00 | 13 |
4 | Condimento Cajun dello chef Anton | 2 | Vasi da 48 - 6 once | 22.00 | 53 |
5 | Gumbo Mix dello chef Anton | 2 | 36 scatole | 21.35 | 0 |
6 | Crema di Boysenberry della nonna | 3 | Vasetti da 12 - 8 once | 25.00 | 120 |
7 | Pere secche biologiche dello zio Bob | 3 | Confezioni da 12 - 1 libbra. | 30.00 | 15 |
Condizioni al contorno semplici
Le prime restrizioni che porremo alla nostra query riguardano semplici condizioni al contorno. Possiamo specificarli nella clausola WHERE della query SELECT, utilizzando semplici istruzioni di condizione costruite con operatori standard, come , >= e <=.
Per prima cosa proviamo una semplice query che ci permette di estrarre un elenco di tutti i prodotti nel database che hanno un UnitPrice superiore a 20.00:
SELEZIONARE Nome prodotto, Prezzo unitario
DA prodotti
DOVE Prezzo unitario >20.00
Questo produce un elenco di quattro prodotti, come mostrato di seguito:
Nome del prodotto Prezzo unitario
Gumbo Mix dello chef Anton 21.35
Condimento Cajun dello chef Anton 22.00
Crema di Boysenberry della nonna 25.00
Pere secche biologiche dello zio Bob 30.00
Possiamo anche usare la clausola WHERE con valori stringa. Ciò equivale fondamentalmente a caratteri numerici, 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:
SELEZIONA il nome del prodotto
DA prodotti
WHERE Nome Prodotto >= 'T'
Che produce il risultato:
Nome del prodotto
Pere secche biologiche dello zio Bob
Esprimere gli intervalli usando i confini
La clausola WHERE ci consente anche di implementare una condizione di intervallo su un valore utilizzando più condizioni. Ad esempio, se volessimo prendere la nostra query sopra e limitare i risultati ai prodotti con prezzi compresi tra le 15.00 e le 20.00, potremmo utilizzare la seguente query:
SELEZIONARE Nome prodotto, Prezzo unitario
DA prodotti
DOVE PrezzoUnitario > 15.00 AND PrezzoUnitario < 20.00
Questo produce il risultato mostrato di seguito:
Nome del prodotto Prezzo unitario
Chai 18.00
Chang 19.00
Esprimere i range con BETWEEN
SQL fornisce anche una scorciatoia BETWEEN sintassi che riduce il numero di condizioni che dobbiamo includere e rende la query più leggibile. Ad esempio, invece di utilizzare le due condizioni WHERE sopra, potremmo esprimere la stessa query di:
SELEZIONARE Nome prodotto, Prezzo unitario
DA prodotti
DOVE Prezzo unitario TRA 15.00 E 20.00
Come con le nostre altre clausole di condizione, BETWEEN funziona anche con valori di stringa. Se volessimo produrre un elenco di tutti i paesi che iniziano con V, W o X, potremmo utilizzare la query:
SELEZIONA il nome del prodotto
DA prodotti
DOVE Nome prodotto TRA "A" e "D"
Che produce il risultato:
Nome del prodotto
Sciroppo Di Anice
Chai
Chang
Gumbo Mix dello chef Anton
Condimento Cajun dello chef Anton
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 aziendale e dovrebbe far parte del toolkit di ogni professionista del database. È spesso utile incorporare clausole comuni in una stored procedure per renderla accessibile a chi non conosce SQL.