Seleksie van data binne reekse in SQL

Bekendstelling van die WHERE-klousule en TUSSEN-voorwaarde

Die gestruktureerde navraagstaal (SQL) bied databasisgebruikers die vermoë om aangepaste navrae te skep om inligting uit databasisse te onttrek. In 'n vorige artikel het ons ondersoek ingestel om inligting uit 'n databasis te gebruik deur SQL SELECT-navrae te gebruik . Kom ons brei uit na die bespreking en ondersoek hoe u gevorderde navrae kan uitvoer om data wat ooreenstem met spesifieke toestande, op te haal.

Kom ons kyk na 'n voorbeeld wat gebaseer is op die algemeen gebruikte Northwind databasis, wat gereeld met databasisprodukte as 'n tutoriaal verskeep word.

Hier is 'n uittreksel uit die databasis se produktabel:

Produk Tabel
ProductNr Produk Naam SupplierID QuantityPerUnit Eenheidsprys UnitsInStock
1 Chai 1 10 bokse x 20 sakke 18.00 39
2 Chang 1 24 - 12 oz bottels 19.00 17
3 Aniseed Stroop 1 12 - 550 ml bottels 10.00 13
4 Sjef Anton se Cajun seisoen 2 48 - 6 oz potte 22.00 53
5 Chef Anton's Gumbo Mix 2 36 bokse 21,35 0
6 Ouma se Boysenberry Spread 3 12 - 8 oz potte 25.00 120
7 Oom Bob se organiese gedroogde pere 3 12 - 1 lb pkgs. 30.00 15

Eenvoudige Grensvoorwaardes

Die eerste beperkings wat ons op ons navraag sal plaas, behels eenvoudige randvoorwaardes. Ons kan dit spesifiseer in die WHERE-klousule van die SELECT-navraag, met behulp van eenvoudige toestandstate wat met standaardoperateurs gebou is, soos <,>,> =, en <=.


Eerstens, laat ons 'n eenvoudige soektog probeer wat ons toelaat om 'n lys van al die produkte in die databasis wat 'n Eenheidsprys van meer as 20,00 het, te onttrek:

SELECTEER Produknaam, Eenheidsprys VANAF produkte WAAR Eenheidsprys> 20.00

Dit gee 'n lys van vier produkte, soos hieronder getoon:

Produknaam Eenheidsprys ------- -------- Chef Anton's Gumbo Mix 21,35 Chef Anton se Cajun seisoen 22.00 Ouma se Boysenberry Spread 25.00 Oom Bob se Organiese Gedroogde Pere 30.00

Ons kan ook die WHERE-klousule gebruik met stringwaardes. Dit vergelyk basies karakters met getalle, met A wat die waarde 1 en Z verteenwoordig. Die waarde is byvoorbeeld 26. Byvoorbeeld, ons kan alle produkte wys met name wat begin met U, V, W, X, Y of Z met die volgende navraag:

SELECT Produknaam VANAF produkte WAAR Produknaam> = 'T'

Wat die resultaat lewer:

Produknaam ------- Oom Bob se Organiese Gedroogde Pere

Uitdrukking van reekse met grense

Die WHERE-klousule stel ons ook in staat om 'n reeksvoorwaarde op 'n waarde te implementeer deur gebruik te maak van veelvuldige toestande. Byvoorbeeld, as ons ons navraag hierbo wou neem en die resultate beperk tot produkte met pryse tussen 15.00 en 20.00, kan ons die volgende navraag gebruik:

KIES Produknaam, Eenheidsprys VAN produkte WAAR Eenheidsprys> 15.00 EN Eenheidsprys <20.00

Hiermee word die resultaat hieronder getoon:

Produknaam Eenheidsprys ------- -------- Chai 18.00 Verander 19.00

Uitdrukking van reekse met TUSSEN

SQL bied ook 'n kortpad tussen die sintaksis wat die aantal toestande wat ons moet insluit, verminder en die navraag meer leesbaar maak. Byvoorbeeld, in plaas van die twee WHERE toestande hierbo te gebruik, kan ons dieselfde navraag uitdruk as:

SELECT ProductName, UnitPrice FROM produkte WAAR Eenheidsprys Tussen 15.00 EN 20.00

Soos met ons ander voorwaardeklousules, werk TUSSEN ook met stringwaardes. As ons 'n lys wil maak van alle lande wat begin met V, W of X, kan ons die navraag gebruik:

SELECT Produknaam VANAF produkte WAAR Produknaam Tussen "A" en "D"

Wat die resultaat lewer:

Produknaam ------- Aniseed Stroop Chai Chang Chef Anton se Gumbo Mix Chef Anton's Cajun Seasoning

Die WHERE-klousule is 'n kragtige deel van die SQL-taal wat u toelaat om resultate te beperk tot waardes wat binne bepaalde bereik val. Dit word baie algemeen gebruik om besigheidslogika uit te druk en behoort deel te wees van elke databasis se professionele toolkit.

Dit is dikwels nuttig om algemene klousules in 'n gestoor prosedure op te neem om dit toeganklik te maak vir diegene sonder SQL-kennis.