Pagpili ng Data Sa loob ng Mga Saklaw sa SQL

Ipinakikilala ang Sugnay ng WHERE at kondisyong BETWEEN

Ang Nakabalangkas na Wika ng Query (SQL) ay nagbibigay ng mga gumagamit ng database na may kakayahang lumikha ng na-customize na mga query upang kunin ang impormasyon mula sa mga database. Sa isang mas naunang artikulo, ineksearch namin ang pagkuha ng impormasyon mula sa isang database gamit ang SQL SELECT query . Palawakin natin ang talakayang iyon at galugarin kung paano ka makakagawa ng mga advanced na query upang mabawi ang data na tumutugma sa mga partikular na kundisyon.

Isaalang-alang natin ang isang halimbawa batay sa karaniwang ginagamit na Northwind database, na madalas na mga barko na may mga produkto ng database bilang isang tutorial.

Narito ang isang sipi mula sa talahanayan ng Produkto ng database:

Table ng Produkto
ProductID Pangalan ng Produkto SupplierID QuantityPerUnit Presyo ng isang piraso UnitsInStock
1 Chai 1 10 mga kahon x 20 bag 18.00 39
2 Chang 1 24 - 12 oz bottles 19.00 17
3 Aniseed Syrup 1 12 - 550 bote ng ML 10.00 13
4 Chef Anton's Cajun Seasoning 2 48 - 6 ans garapon 22.00 53
5 Gfo Anton's Gumbo Mix 2 36 na mga kahon 21.35 0
6 Kumakalat ang Boysenberry ni Lola 3 12 - 8 oz garapon 25.00 120
7 Ang Organic Dried Pears ni Uncle Bob 3 12 - 1 lb pkgs. 30.00 15

Mga Kundisyon ng Mga Karaniwang Boundary

Ang unang mga paghihigpit na inilalagay namin sa aming tanong ay may kinalaman sa simpleng mga kondisyon ng hangganan. Maaari naming tukuyin ang mga ito sa WHERE clause ng PUMILI query, gamit ang simpleng kondisyon ng kondisyon na itinayo sa karaniwang mga operator, tulad ng <,>,> =, at <=.


Una, subukan natin ang isang simpleng query na nagbibigay-daan sa amin upang kunin ang isang listahan ng lahat ng mga produkto sa database na may UnitPrice ng higit sa 20.00:

Pumili ng ProductName, UnitPrice FROM produkto WHERE UnitPrice> 20.00

Nagbubuo ito ng isang listahan ng apat na mga produkto, tulad ng ipinapakita sa ibaba:

ProductName UnitPrice ------- ------ Chef Anton's Gumbo Mix 21.35 Chef Anton's Cajun Seasoning 22.00 Boysenberry Spread ng Grandma 25.00 Organic Dried Pears ng Uncle Bob 30.00

Maaari din naming gamitin ang Sugnay ng WHERE na may mga halaga ng string. Ito ay karaniwang tumutugma sa mga character sa mga numero, na may A na kumakatawan sa halaga 1 at Z na kumakatawan sa halaga na 26. Halimbawa, maaari naming ipakita ang lahat ng mga produkto na may mga pangalan na nagsisimula sa U, V, W, X, Y o Z sa sumusunod na tanong:

PUMILI NA ProductName FROM produkto WHERE ProductName> = 'T'

Aling gumagawa ng resulta:

ProductName ------- Organic Dried Pears ng Uncle Bob

Pagpapahayag ng mga Ranges gamit ang Mga Hangganan

Pinapayagan din ng sugnay ng WHERE sa amin na ipatupad ang isang kondisyon ng saklaw sa isang halaga sa pamamagitan ng paggamit ng maraming kundisyon. Halimbawa, kung gusto naming isagawa ang aming query sa itaas at limitahan ang mga resulta sa mga produkto na may mga presyo sa pagitan ng 15.00 at 20.00, maaari naming gamitin ang sumusunod na query:

Pumili ng ProductName, UnitPrice FROM produkto WHERE UnitPrice> 15.00 AT UnitPrice <20.00

Nagbubuo ito ng resulta na ipinapakita sa ibaba:

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

Nagpapahayag ng Mga Saklaw na may ANTAS

Nagbibigay din ang SQL ng isang shortcut sa pagitan ng syntax na binabawasan ang bilang ng mga kondisyon na kailangan nating isama at ginagawang mas mababasa ang query. Halimbawa, sa halip na gamitin ang dalawang kundisyon SAAN sa itaas, maaari naming ipahayag ang parehong query bilang:

PUMILI NA ProductName, UnitPrice FROM produkto WHERE UnitPrice SA BATAS SA 15.00 AT 20.00

Tulad ng sa aming iba pang mga kondisyon clauses, SA BETWEEN gumagana sa mga halaga ng string pati na rin. Kung nais naming gumawa ng isang listahan ng lahat ng mga bansa na nagsisimula sa V, W o X, maaari naming gamitin ang query:

PUMILI NA ProductName FROM produkto WHERE ProductName SA PAGITAN "A" at "D"

Aling gumagawa ng resulta:

ProductName ------- Aniseed Syrup Chai Chang Chef Anton ng Gumbo Mix Chef Anton's Cajun Seasoning

Ang WHERE clause ay isang malakas na bahagi ng wika ng SQL na nagbibigay-daan sa iyo upang paghigpitan ang mga resulta sa mga halaga na bumabagsak sa loob ng tinukoy na mga saklaw. Ito ay karaniwang ginagamit upang makatulong na ipahayag ang lohika ng negosyo at dapat maging bahagi ng bawat toolkit ng database ng propesyonal.

Madalas itong nakakatulong upang maisama ang karaniwang mga clause sa isang nakaimbak na pamamaraan upang ma-access ito sa mga walang kaalaman sa SQL.