Tietojen valitseminen rajoissa SQL: ssä

Esitetään WHERE-lauseke ja ETSIN ehto

Structured Query Language (SQL) tarjoaa tietokannan käyttäjille mahdollisuuden luoda räätälöityjä kyselyjä tietokantojen tietojen poistamiseksi. Aiemmassa artikkelissa tutkittiin tietojen poistamista tietokannasta käyttäen SQL SELECT-kyselyjä . Pidennä tätä keskustelua ja selvitämme, miten voit tehdä kehittyneitä kyselyjä tietyissä olosuhteissa vastaavan datan hakemiseen.

Katsotaanpa esimerkki yleisesti käytetystä Northwind-tietokannasta, joka usein toimittaa tietokantatuotteita opetusohjelmana.

Tässä on ote tietokannan Tuotetaulukosta:

Tuotetaulukko
Tuotetunnus Tuotteen nimi SupplierID QuantityPerUnit Yksikköhinta UnitsInStock
1 Chai 1 10 laatikkoa x 20 pussia 18.00 39
2 Chang 1 24 - 12 oz pulloa 19.00 17
3 Anisoitu siirappi 1 12 - 550 ml pulloja 10.00 13
4 Chef Antonin Cajun-maustekastike 2 48 - 6 oz purkkia 22.00 53
5 Chef Antonin Gumbo Mix 2 36 laatikkoa 21.35 0
6 Mummon Boysenberry Spread 3 12 - 8 oz purkkia 25.00 120
7 Bobin orkesterin kuivatut päärynät 3 12 - 1 lb pkgs. 30.00 15

Yksinkertaiset rajoitusolosuhteet

Ensimmäiset rajoituksemme, jotka asetamme kyselyyn, sisältävät yksinkertaisia ​​raja-olosuhteita. Voimme määrittää nämä SELECT-kyselyn WHERE-lausekkeessa käyttämällä yksinkertaisia ​​ehtoehtoja, jotka on rakennettu tavallisilla operaattoreilla, kuten <,>,> = ja <=.


Yritetään ensin yksinkertainen kysely, jonka avulla voimme purkaa luettelon kaikista tietokannasta, joiden yksikköhinta on yli 20.00:

VALITSE Tuotenimi, Yksikköhinta KÄYTÄNTÄ TUOTTEITA, JOS Yksikköhinta> 20.00

Tämä tuottaa luettelon neljästä tuotteesta, kuten alla on esitetty:

ProductName UnitPrice ------- -------- Chef Antonin Gumbo Mix 21.35 Keittiömestari Antonin Cajun-mausteet 22.00 Mummen Boysenberry Spread 25.00 Bobin orkesterin kuivatut päärynät 30.00

Voimme käyttää WHERE-lauseketta myös merkkijonolla. Tämä merkitsee periaatteessa merkkejä numeroihin, joissa A on arvo 1 ja Z, joka edustaa arvoa 26. Esimerkiksi voimme näyttää kaikki tuotteet, joiden nimiä on U, V, W, X, Y tai Z,

VALITSE TuotteenNUMINEN TUOTTEISTA, JOTKA Tuotteen nimi> = 'T'

Mikä tuottaa tuloksen:

Tuotenimi ------- Bobin orkesterin kuivatut päärynät

Alueiden ilmaiseminen rajojen avulla

WHERE-lausekkeen avulla voimme myös toteuttaa alueen ehtoa arvoon käyttämällä useita ehtoja. Jos esimerkiksi halusimme ottaa kyselyn yllä ja rajoittaa tuloksia tuotteisiin, joiden hinnat ovat välillä 15.00-20.00, voimme käyttää seuraavaa kyselyä:

VALITSE Tuotenimi, yksikköhinta TUOTTEISTA, JOS yksikköhinta> 15,00 JA yksikköhinta <20,00

Tämä tuottaa alla olevan tuloksen:

Tuotteen nimi Yksikköhinta ------- -------- Chai 18.00 Chang 19.00

Alueiden ilmaiseminen yhdessä

SQL tarjoaa myös pikakuvakkeen syntaksi, joka vähentää niiden ehtojen lukumäärää, jotka meidän on sisällytettävä ja jotka tekevät kyselyn luettavaksi. Esimerkiksi edellä mainittujen kahden WHERE-ehdon sijaan voimme ilmaista saman kyselyn:

VALITSE Tuotenimi, yksikköhinta tuotteesta, jossa yksikköhinta välillä 15.00 ja 20.00

Kuten muidenkin ehtolausekkeiden kanssa, BETWEEN toimii myös merkkijonoarvojen kanssa. Jos halusimme tuottaa luettelon kaikista maista, jotka alkavat V: lla, W: llä tai X: llä, voimme käyttää kyselyä:

VALITSE TuotteenNUMINEN TUOTTEISTA, JOTKA Tuotteenimi "A" - ja "D"

Mikä tuottaa tuloksen:

Tuotteen nimi ------- Anisoitu siirappi Chai Chang Chef Antonin Gumbo Mix Chef Antonin Cajun Mauste

WHERE-lauseke on voimakas osa SQL-kieltä, jonka avulla voit rajoittaa tuloksia määritettyihin alueisiin. Se on hyvin yleisesti käytetty ilmaisemaan liiketoiminnan logiikkaa ja sen pitäisi olla osa jokaisen tietokannan ammattilaisen työkalupakki.

Usein hyödyllistä on sisällyttää yhteiset lausekkeet tallennettuun menettelyyn , jotta ne olisivat saatavilla niille, joilla ei ole SQL-tietämystä.