Jäsennelty kyselykieli (SQL) tarjoaa tietokannan käyttäjille mahdollisuuden luoda räätälöityjä kyselyjä tietojen keräämiseksi tietokannoista. Aikaisemmassa artikkelissa tutkimme tietojen poimimista tietokannasta käyttämällä SQL SELECT -kyselyjä. Laajennetaan keskusteluun ja tutkitaan, miten voit edistyä kyselyt hakea tietoja täyttää tietyt ehdot.
Tarkastellaan esimerkkiä, joka perustuu yleisesti käytettyyn Pohjoistuuli tietokanta, joka toimittaa usein tietokantatuotteita opetusohjelmana.
Tässä on ote tietokannan Tuotetaulukosta:
Tuotekoodi | Tuotteen nimi | ToimittajaID | MääräPerUnit | Yksikköhinta | YksikötVarasto |
---|---|---|---|---|---|
1 | Chai | 1 | 10 laatikkoa x 20 pussia | 18.00 | 39 |
2 | Chang | 1 | 24-12 oz pullot | 19.00 | 17 |
3 | Anissiirappi | 1 | 12-550 ml pullot | 10.00 | 13 |
4 | Kokki Antonin Cajun-mauste | 2 | 48-6 oz purkit | 22.00 | 53 |
5 | Kokki Anton's Gumbo Mix | 2 | 36 laatikkoa | 21.35 | 0 |
6 | Mummon Boysenberry Spread | 3 | 12-8 oz purkit | 25.00 | 120 |
7 | Bob-setän orgaaniset kuivatut päärynät | 3 | 12-1 paunaa painoja. | 30.00 | 15 |
Yksinkertaiset rajaolosuhteet
Ensimmäiset kyselymme rajoitukset koskevat yksinkertaisia rajaehtoja. Voimme määrittää nämä SELECT-kyselyn WHERE-lauseessa käyttämällä yksinkertaisia ehtoehtoja, jotka on rakennettu vakiooperaattoreilla, kuten ,> = ja <=.
Yritetään ensin yksinkertaista kyselyä, jonka avulla voimme poimia luettelon kaikista tietokannan tuotteista, joiden UnitPrice on yli 20,00:
Valitse ProductName, UnitPrice
FROM tuotteista
Missä Yksikköhinta> 20.00
Tämä tuottaa luettelon neljästä tuotteesta, kuten alla on esitetty:
ProductName UnitPrice
Kokki Anton's Gumbo Mix 21.35
Kokki Antonin Cajun-mauste 22.00
Mummon Boysenberry Spread 25.00
Bob-setän orgaaniset kuivatut päärynät 30.00
Voimme käyttää myös WHERE-lauseketta merkkijonoarvoilla. Tämä rinnastaa periaatteessa merkit lukuihin, jolloin A edustaa arvoa 1 ja Z edustaa arvoa 26. Voisimme esimerkiksi näyttää kaikki tuotteet, joiden nimi alkaa U, V, W, X, Y tai Z, seuraavalla kyselyllä:
Valitse ProductName
FROM tuotteista
WHERE ProductName> = 'T'
Mikä tuottaa tuloksen:
Tuotteen nimi
Bob-setän orgaaniset kuivatut päärynät
Alueiden ilmaiseminen rajojen avulla
WHERE-lausekkeen avulla voimme myös toteuttaa alueelle ehdon arvolle käyttämällä useita ehtoja. Jos esimerkiksi halusimme ottaa kyselymme yllä ja rajoittaa tulokset tuotteisiin, joiden hinnat ovat välillä 15.00 - 20.00, voisimme käyttää seuraavaa kyselyä:
Valitse ProductName, UnitPrice
FROM tuotteista
Missä Yksikköhinta> 15.00 JA Yksikköhinta <20,00
Tämä tuottaa alla esitetyn tuloksen:
ProductName UnitPrice
Chai 18.00
Chang 19.00
Alueiden ilmaiseminen VÄLILLÄ
SQL tarjoaa myös pikakuvakkeen BETWEEN-syntaksin, joka vähentää sisällytettävien ehtojen määrää ja tekee kyselystä luettavamman. Esimerkiksi kahden yllä olevan WHERE-ehdon käyttämisen sijaan voimme ilmaista saman kyselyn kuin:
Valitse ProductName, UnitPrice
FROM tuotteista
Missä yksikköhinta 15.00 JA 20.00 VÄLILLÄ
Kuten muiden ehtoehtojemme kohdalla, BETWEEN toimii myös merkkijonoarvojen kanssa. Jos haluaisimme tuottaa luettelon kaikista maista, jotka alkavat V: llä, W: llä tai X: llä, voisimme käyttää kyselyä:
Valitse ProductName
FROM tuotteista
Missä tuotenimi "A": n ja "D": N VÄLILLÄ
Mikä tuottaa tuloksen:
Tuotteen nimi
Anissiirappi
Chai
Chang
Kokki Anton's Gumbo Mix
Kokki Antonin Cajun-mauste
WHERE-lauseke on tehokas osa SQL-kieltä, jonka avulla voit rajoittaa tulokset arvoihin, jotka kuuluvat määritettyihin alueisiin. Sitä käytetään hyvin yleisesti liiketoimintalogiikan ilmaisemiseen, ja sen pitäisi olla osa jokaisen tietokanta-ammattilaisen työkalupakettia. Usein on hyödyllistä sisällyttää yleiset lausekkeet tallennettuun menettelyyn, jotta se olisi niille, joilla ei ole SQL-tietämystä.