Selektearje gegevens yn rigen yn SQL

It yndividjen fan 'e WHERE-klausel en de betingsten fan kondysje

De Struktureare Query-taal (SQL) jout database-brûkers mei de mooglikheid om maatwurksifers te meitsjen om ynformaasje út te stjoeren fan databases. Yn in earder artikel ûntdekte wy ynformaasje út in database mei help fan SQL SELECT-fragen . Lit dizze útwurking útwreidzje en ûndersiikje hoe't jo befreone query dwaan kinne om data te berikken dy't spesifike betingsten passe.

Litte wy in foarbyld beskôgje op 'e gewoane brûkt Northwind-database, dy't faak mei database-produkten skriuwt as in tutorial.

Hjir is in útdiel fan 'e Product tabel databank:

Product Table
ProductID Produkt Namme SupplierID QuantityPerUnit UnitPrice UnitsInStock
1 Chai 1 10 boeken x 20 tasjes 18.00 39
2 Chang 1 24 - 12 oz fleskes 19.00 17
3 Aniseed Sirup 1 12 - 550 ml fleskes 10.00 13
4 Chef Anton's Cajun-sûzjen 2 48 - 6 jellen 22.00 53
5 Chef Anton's Gumbo Mix 2 36 boaten 21.35 0
6 Grutter 's Boysenberry Spread 3 12 - 8 jagers 25.00 120
7 Uncle Bob's Organic Dried Pears 3 12 - 1 lb pkgs. 30.00 15

Simple Boundary Conditions

De earste beheinings dy't wy pleatse sille op ús query pleatse binne ienfâldige grinsferhâldings. Wy kinne dizze ynstelle yn 'e WHERE-klausel fan' e SELECT-query, mei help fan ienfâldige betingsten foar gebrûk fan standertbehearder, lykas <,>,> =, en <=.


Earst probearje wy in ienfâldige query dy't ús in list fan alle produkten yn 'e databank mei in UnitPrice fan mear as 20.00 oernimme kin:

SELECT ProductName, UnitPrice FROM produkten WHERE UnitPrice> 20.00

Dit produkt in list fan fjouwer produkten, lykas hjirûnder sjen litten:

ProductName UnitPrice ------- -------- Chef Anton's Gumbo Mix 21.35 Chef Anton's Cajun-sûkerjen 22.00 Grandma's Boysenberry Spread 25.00 Onkel Bob's Organic Dried Pears 30.00

Wy kinne ek de WHERE-klausel brûke mei stringwearden. Dit soarget as in karakterisaasje foar sifers, wêrby A A de wearde 1 en Z representearret fan de wearde 26. Foarbyld kinne wy ​​alle produkten mei nammen begjinne mei U, V, W, X, Y of Z mei de folgjende fraach:

SELECT ProductName FROM produkten wêr't ProductName> = 'T'

Hokker produkt it resultaat produkt:

ProductName ------- Uncle Bob's Organic Dried Pears

Ekspresearjen fan rigels mei gebrûk

De WHERE-klausel lit ús ek in oanbodstân op in wearde útfiere troch meardere betingsten te brûken. Bygelyks as wy ús boppesteande boppesteande ûndernimmingen hawwe en de resultaten op produkten mei prizen beheine kinne tusken 15.00 en 20.00 oere kinne wy ​​de folgjende fraach brûke:

SELECT ProductName, UnitPrice FROM produkten WHERE UnitPrice> 15.00 en UnitPrice <20.00

Dit produkt it resultaat hjirûnder:

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

Eksportearjen fan rigels mei gearwurkje

SQL leveret ek in fluchtoetssynthet SYNK te feroarjen dat it tal betingsten ferminderet dy't wy nedich hawwe om te ynklikken en makket de query mear lêsber. Bygelyks, yn stee fan 'e gebrûk fan' e twa WHERE omskriuwing, kinne wy ​​de deselde query ekspresje lykas:

SELECT ProductName, UnitPrice FROM produkten Wêr unitPrice tusken 15.00 en 20.00 oere

As mei ús oare betingstklasses wurket BETWEEN ek mei stringwearden. As wy in list fan alle lannen begjinne mei begjin mei V, W of X, kinne wy ​​de query brûke:

SELECT ProductName FROM produkten Wêr ProductName telt "A" en "D"

Hokker produkt it resultaat produkt:

ProductName ------- Aniseed Syrup Chai Chang Chef Anton's Gumbo Mix Chef Anton's Cajun-seehûn

De WHERE-klausel is in krêftich ûnderdiel fan 'e SQL-taal wêrtroch jo de resultaten beheine kinne op wearden dy't foarkomme yn spesifike farianten. It is hiel geweldich om te helpen útdrukke bedriuwslibik en moat in diel fan elke database-proxy-toolkit wêze.

It is faak nuttich om mienskiplike klauses yn te bewarjen yn in bewarre proseduere om tagonklik te meitsjen foar dy sûnder SQL-kennis.