Introducing WHERE klauzulu un BETWEEN nosacījumu
Strukturēto vaicājumu valoda (SQL) nodrošina datu bāzes lietotājiem iespēju izveidot pielāgotus vaicājumus, lai iegūtu informāciju no datu bāzēm. Iepriekšējā rakstā mēs pētījām informāciju no datu bāzes, izmantojot SQL SELECT vaicājumus . Izvērsīsim šo diskusiju un izpētīsim, kā jūs varat veikt uzlabotus vaicājumus, lai izgūtu datus, kas atbilst konkrētiem nosacījumiem.
Apskatīsim piemēru, kas balstīts uz bieži izmantoto Northwind datubāzi, kura bieži vien ar apmācības palīdzību piegādā datubāzes produktus.
Šeit ir izvilkums no datu bāzes Produkta tabulas:
ProductID | Produkta nosaukums | SupplierID | NumberPerUnit | Vienības cena | UnitsInStock |
---|---|---|---|---|---|
1 | Chai | 1 | 10 kastes x 20 somas | 18.00 | 39 |
2 | Čangs | 1 | 24 - 12 collu pudeles | 19.00 | 17 |
3 | Anīsa sīrups | 1 | 12 - 550 ml pudelītes | 10.00 | 13 |
4 | Chef Antona Cajun garšviela | 2 | 48 - 6 oz burkas | 22.00 | 53 |
5 | Chef Anton's Gumbo Mix | 2 | 36 kastes | 21.35 | 0 |
6 | Vecmāmiņas zaķapavārs | 3 | 12 - 8 collu burkas | 25.00 | 120 |
7 | Uncle Bob's Organic Dried Bumbers | 3 | 12 - 1 lb pkgs. | 30.00 | 15 |
Vienkārši robežu nosacījumi
Pirmie ierobežojumi, kurus mēs ievietosim mūsu vaicājumā, ietver vienkāršus robežnosacījumus. Mēs varam tos norādīt SELECT vaicājuma WHERE klauzulā, izmantojot vienkāršus nosacījumu paziņojumus, kas izveidoti ar standarta operatoriem, piemēram, <,>,> = un <=.
Vispirms izmēģiniet vienkāršu vaicājumu, kas ļauj mums iegūt sarakstu ar visiem produktiem, kas atrodas datubāzē, kuru Vienības cena ir lielāka par 20,00:
Tas veido četru produktu sarakstu, kā parādīts zemāk:
ProductName UnitPrice ------- ------- Chef Anton's Gumbo Mix 21.35 Chef Anton's Cajun Garšvielas 22.00 Grandma's Boysenberry Spread 25.00 Uncle Bob's Organic Dry Bars 30.00Mēs varam arī izmantot WHERE klauzulu ar virknes vērtībām. Tas pamatā pielīdzina rakstzīmes skaitļiem ar A, kas attēlo vērtību 1 un Z, kas ir 26. vērtība. Piemēram, mēs varētu parādīt visus produktus ar nosaukumiem, kas sākas ar U, V, W, X, Y vai Z ar šādu vaicājumu:
SELECT ProductName FROM PRODUCTS WHERE ProductName> = 'T'Kas rada rezultātu:
ProductName ------- Uncle Bob's Organic Dried BumbersIzteikt diapazonus, izmantojot robežas
WHERE klauzula arī ļauj mums ieviest vērtību diapazona nosacījumus, izmantojot vairākus nosacījumus. Piemēram, ja mēs gribētu ņemt augstāk minēto vaicājumu un ierobežot rezultātus produktiem ar cenām no plkst. 15.00 līdz 20.00, mēs varētu izmantot šādu vaicājumu:
SELECT ProductName, UnitPrice No produktiem WHERE UnitPrice> 15.00 UN UnitPrice <20.00Tas rada rezultātu, kas parādīts zemāk:
ProductName UnitPrice ------- -------- Chai 18.00 Chang 19.00Izteikt diapazonus BETWEEN
SQL arī nodrošina īsceļu BETWEN sintakse, kas samazina nosacījumu skaitu, kas mums ir jāiekļauj un padara vaicājumu lasāmāku. Piemēram, tā vietā, lai izmantotu iepriekš minētos WHERE nosacījumus, mēs varētu izteikt tādu pašu vaicājumu kā:
SELECT ProductName, UnitPrice No produktiem, ja vienības cena ir no 15:00 līdz 20,00Tāpat kā mūsu citu nosacījumu klauzulos, BETWEEN strādā arī ar virknes vērtībām. Ja mēs gribētu izveidot sarakstu ar visām valstīm, kas sākas ar V, W vai X, mēs varētu izmantot vaicājumu:
IZVĒLIETIES produkta nosaukumu FROM PRODUCTS WHERE ProductName BETWE "A" un "D"Kas rada rezultātu:
ProductName ------- Anīsa sīrups Chai Chang šefpavārs Antona Gumbo maisījuma šefpavārs Antona Cajun garšvielaWHERE klauzula ir spēcīga SQL valodas daļa, kas ļauj ierobežot rezultātus ar vērtībām, kas ietilpst noteiktā diapazonā. Tas ļoti bieži tiek izmantots, lai palīdzētu izteikt biznesa loģiku, un tai vajadzētu būt daļai no katras datubāzes profesionāļa rīku komplekta.
Parasti ir lietderīgi iekļaut kopējās klauzulas glabātā procedūrā, lai padarītu to pieejamu tiem, kuriem nav SQL zināšanu.