Selectarea datelor în intervalul în SQL

Introducerea clauzei WHERE și a condiției BETWEEN

Limbajul de interogare structurat (SQL) oferă utilizatorilor de baze de date posibilitatea de a crea interogări personalizate pentru a extrage informații din baze de date. Într-un articol anterior, am explorat extragerea informațiilor dintr-o bază de date folosind interogări SQL SELECT . Să ne extindem asupra acestei discuții și să explorăm modul în care puteți efectua interogări avansate pentru a prelua date care corespund unor condiții specifice.

Să luăm în considerare un exemplu bazat pe baza de date Northwind utilizată în mod obișnuit, care în mod obișnuit livrează cu produse de bază de date un tutorial.

Iată un extras din tabelul de produse al bazei de date:

Tabel de produse
ProductID Numele produsului SupplierID QuantityPerUnit Preț unitar Unitati in stoc
1 chai 1 10 cutii x 20 de saci 18.00 39
2 Chang 1 Flacoane de 24 - 12 oz 19.00 17
3 Sirop de anason 1 Sticle de 12 - 550 ml 10.00 13
4 Șeful lui Anton Cajun condimentează 2 Borcane de 48 - 6 oz 22.00 53
5 Cheful lui Anton's Gumbo Mix 2 36 cutii 21.35 0
6 Bunica lui Boysenberry Spread 3 Borcane de 12 - 8 oz 25.00 120
7 Peretele uscat organic al unchiului Bob 3 12 - 1 lb pkgs. 30.00 15

Condiții limită simple

Primele restricții pe care le vom pune pe interogarea noastră implică condiții limită simple. Putem specifica acestea în clauza WHERE a interogării SELECT, utilizând instrucțiuni simple de condiție construite cu operatori standard, cum ar fi <,>,> =, și <=.


Mai întâi, să încercăm o interogare simplă care să ne permită să extragem o listă a tuturor produselor din baza de date care au un UnitPrice mai mare de 20.00:

SELECT ProductName, UnitPrice din produse WHERE UnitPrice> 20.00

Aceasta produce o listă de patru produse, după cum se arată mai jos:

ProductName UnitPrice ------- -------- Cheful lui Anton's Gumbo Mix 21.35 Chef Anton's Cajun Condimentarea 22.00 Distribuția lui Boysenberry a bunicii 25.00 Pearcile uscate organice ale unchiului Bob 30.00

De asemenea, putem folosi clauza WHERE cu valori de șir. Acest lucru este de fapt echivalent cu caracterele cu numere, cu A reprezentând valoarea 1 și Z reprezentând valoarea 26. De exemplu, am putea arăta toate produsele cu nume care încep cu U, V, W, X, Y sau Z cu următoarea interogare:

SELECT ProductName din produse WHERE ProductName> = 'T'

Care produce rezultatul:

ProductName ------- Perele uscate organice ale unchiului Bob

Exprimarea intervalelor folosind limitele

Clauza WHERE ne permite, de asemenea, să implementăm o condiție a unei valori pe o valoare utilizând mai multe condiții. De exemplu, dacă vrem să luăm întrebarea de mai sus și să limităm rezultatele la produse cu prețuri între orele 15.00 și 20.00, am putea folosi următoarea interogare:

SELECT ProductName, UnitPrice din produse WHERE UnitPrice> 15.00 AND UnitPrice <20.00

Aceasta produce rezultatul indicat mai jos:

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

Exprimarea intervalelor cu MIX

SQL oferă, de asemenea, o scurtătură între sintaxa BETWEEN care reduce numărul de condiții pe care trebuie să le includem și face interogarea mai ușor de citit. De exemplu, în loc să folosim cele două condiții WHERE de mai sus, am putea exprima aceeași interogare ca:

SELECT ProductName, UnitPrice din produse WHERE UnitPrice ÎNTRE 15.00 și 20.00

Ca și în cazul celorlalte clauze de condiție, ÎntreTREBI funcționează și cu valorile șirului. Dacă vrem să producem o listă a tuturor țărilor care încep cu V, W sau X, am putea folosi interogarea:

SELECT ProductName FROM PRODUCTS WHERE ProductName ÎNTREA "A" și "D"

Care produce rezultatul:

ProductName ------- Sirop de anason Chai Chang Chef Anton's Gumbo Mix Chef Anton's Cajun Seasoning

Clauza WHERE este o parte puternică a limbajului SQL care vă permite să restricționați rezultatele la valori care se încadrează în limitele specificate. Acesta este foarte frecvent folosit pentru a ajuta la exprimarea logicii de afaceri și ar trebui să facă parte din setul de instrumente al fiecărei baze de date profesionale.

Este adesea util să includeți clauze comune într-o procedură stocată pentru a le face accesibile celor fără cunoștințe SQL.