Datu atlases diapazonos SQL

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:

Produktu tabula
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:

SELECT ProductName, UnitPrice No produktiem WHERE UnitPrice> 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.00

Mē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 Bumbers

Izteikt 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.00

Tas rada rezultātu, kas parādīts zemāk:

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

Izteikt 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,00

Tā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šviela

WHERE 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.