Val á gögnum innan sviða í SQL

Kynna WHERE ákvæði og MIKILVÆGT ástand

The Structured Query Language (SQL) veitir gagnagrunninum notendum kleift að búa til sérsniðnar fyrirspurnir til að vinna úr upplýsingum úr gagnagrunni. Í fyrri grein leitaði við útdráttar upplýsingar úr gagnagrunni með SQL SELECT fyrirspurnum . Við skulum auka umræðurnar og kanna hvernig hægt er að framkvæma háþróaðar fyrirspurnir til að sækja gögn sem passa við sérstakar aðstæður.

Við skulum íhuga dæmi sem byggist á almennum Northwind gagnagrunni, sem oft er skipað með gagnasafurðum sem einkatími.

Hér er útdráttur úr vörulista gagnagrunnsins:

Vara Tafla
ProductID Vöru Nafn SupplierID MagnPerUnit Einingaverð EiningarInStock
1 Chai 1 10 kassar x 20 pokar 18.00 39
2 Chang 1 24 - 12 ml flöskur 19.00 17
3 Anísasíróp 1 12 - 550 ml flöskur 10.00 13
4 Chef Anton Cajun kryddjurtir 2 48 - 6 oz krukkur 22.00 53
5 Chef Anton Gumbo Mix 2 36 kassar 21,35 0
6 Grandma's Boysenberry Spread 3 12 - 8 oz krukkur 25.00 120
7 Ólíkt Bob lífrænt þurrkað perur 3 12 - 1 lb pkgs. 30.00 15

Einföld mörk skilyrði

Fyrstu takmarkanirnar sem við munum setja á fyrirspurninni eru einföld mörk skilyrði. Við getum tilgreint þetta í WHERE ákvæðið í SELECT fyrirspurninni, með því að nota einfaldar staðhæfingar sem eru byggðar með venjulegum rekstraraðilum, svo sem <,>,> = og <=.


Fyrst skulum við reyna einfalt fyrirspurn sem gerir okkur kleift að vinna úr lista yfir allar vörur í gagnagrunni sem hafa UnitPrice meira en 20,00:

SELECT Varaheiti, UnitPrice FROM vörur WHERE UnitPrice> 20.00

Þetta framleiðir lista yfir fjórar vörur, eins og sýnt er hér að neðan:

Varaheiti UnitPrice ------- -------- Gumbo Mix Chef Anton's 21,35 Chef Anton's Cajun kryddjurt 22.00 Grandma's Boysenberry Spread 25.00 Lífrænt þurrkað Pears Uncle Bob 30,00

Við getum líka notað WHERE ákvæði með strengagildi. Þetta er í grundvallaratriðum jafngildir stöfum í tölum, þar sem A táknar gildi 1 og Z sem táknar gildi 26. Til dæmis gætum við sýnt allar vörur með nöfn sem byrja á U, V, W, X, Y eða Z með eftirfarandi fyrirspurn:

VELJA VÖRNAFNI FRÁ afurðir HVAR Varaheiti> = 'T'

Sem gefur afleiðinguna:

Vöruheiti ------- Lífræn þurrkaðir perlur Uncle Bobs

Tjá svið með því að nota mörk

WHERE ákvæði leyfir okkur einnig að framkvæma svið skilyrði á gildi með því að nota margar aðstæður. Til dæmis, ef við viljum taka fyrirspurn okkar hér að ofan og takmarka niðurstöðurnar við vörur með verð á milli 15,00 og 20,00, gætum við notað eftirfarandi fyrirspurn:

SELECT Varaheiti, UnitPrice FROM vörur WHERE UnitPrice> 15.00 OG UnitPrice <20.00

Þetta framleiðir niðurstöðuna sem sýnd er hér að neðan:

ProductName UnitPrice ------- -------- Chai 18.00 Breyta 19.00

Tjá svið með milli

SQL veitir einnig flýtileið MILLIÐ setningafræði sem dregur úr fjölda skilyrða sem við þurfum að fela í sér og gerir fyrirspurnin læsilegari. Til dæmis, í stað þess að nota tvær WHERE skilyrði hér að framan, gætum við tjáð sömu fyrirspurn og:

SELECT Varaheiti, UnitPrice FROM vörur WHERE UnitPrice milli 15.00 og 20.00

Eins og með aðrar skilyrðin okkar á skilyrðum, gengur MILLIÐ einnig með strengagildi. Ef við viljum framleiða lista yfir öll lönd sem byrja með V, W eða X, gætum við notað fyrirspurnina:

VELJA VÖRNAFNI FRÁ VÖRUR HVAR VÖRUNAMÁL MILLI A "og" D "

Sem gefur afleiðinguna:

Varaheiti ------- Aniseed Síróp Chai Chang Chef Anton Gumbo Blanda Chef Anton Cajun Krydd

WHERE ákvæði er öflugur hluti af SQL tungumálinu sem gerir þér kleift að takmarka niðurstöðurnar við gildin sem falla innan tilgreindra sviða. Það er mjög algengt að hjálpa til við að tjá viðskipti rökfræði og ætti að vera hluti af tól gagnagrunni fagfólki er tól.

Það er oft gagnlegt að fella inn sameiginlega ákvæði í geymsluaðferð til að gera það aðgengilegt þeim sem eru án SQL þekkingar.