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:
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:
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.00De 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 BobExprimarea 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.00Aceasta produce rezultatul indicat mai jos:
ProductName UnitPrice ------- -------- Chai 18.00 Chang 19.00Exprimarea 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.00Ca ș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 SeasoningClauza 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.