Selecteer gegevens binnen bereik in SQL

De Gestructureerde Query Taal (SQL) biedt databasegebruikers de mogelijkheid om aangepaste query's te maken om informatie uit databases te extraheren. In een eerder artikel hebben we onderzocht hoe informatie uit een database kan worden gehaald SQL SELECT-query's gebruiken. Laten we die discussie uitbreiden en onderzoeken hoe u geavanceerd kunt presteren vragen om gegevens op te halen die komt overeen met specifieke voorwaarden.

Laten we een voorbeeld bekijken op basis van de veelgebruikte Noordenwind database, die vaak wordt geleverd met databaseproducten als zelfstudie.

Hier is een fragment uit de producttabel van de database:

Product-ID Productnaam Leverancier ID Hoeveelheid per eenheid Stuksprijs Aantal op voorraad
1 Chai 1 10 dozen x 20 zakken 18.00 39
2 Chang 1 24 - 12 oz flessen 19.00 17
3 Anijssiroop 1 12 - 550 ml flessen 10.00 13
4 Cajun-kruiden van chef Anton 2 48 - 6 oz potten 22.00 53
5 Gumbo Mix van chef Anton Anton 2 36 dozen 21.35 0
6 Oma's Boysenbessenspread 3 12 - 8 oz potten 25.00 120
7 Uncle Bob's Biologische Gedroogde Peren 3 12 - 1 pond pakken. 30.00 15
Producttabel:
instagram viewer

Eenvoudige randvoorwaarden

De eerste beperkingen die we aan onze vraag zullen stellen, betreffen eenvoudige randvoorwaarden. We kunnen deze specificeren in de WHERE-component van de SELECT-query, met behulp van eenvoudige voorwaarde-instructies die zijn gemaakt met standaardoperators, zoals , >= en <=.

Laten we eerst een eenvoudige query proberen waarmee we een lijst kunnen extraheren van alle producten in de database met een prijs per eenheid van meer dan 20,00:

SELECT productnaam, prijs per eenheid
VAN producten
WAAR Eenheidsprijs >20.00

Dit levert een lijst op van vier producten, zoals hieronder weergegeven:

Productnaam EenheidPrijs

Chef Anton's Gumbo Mix 21.35
Chef Anton's Cajun Kruiden 22.00
Oma's Boysenberry Spread 25,00
Uncle Bob's Biologische Gedroogde Peren 30.00

We kunnen ook de WHERE-clausule gebruiken met tekenreekswaarden. Dit stelt in feite tekens gelijk aan getallen, waarbij A de waarde 1 vertegenwoordigt en Z de waarde 26. We kunnen bijvoorbeeld alle producten tonen met namen die beginnen met U, V, W, X, Y of Z met de volgende zoekopdracht:

KIES productnaam
VAN producten
WAAR Productnaam >= 'T'

Wat het resultaat oplevert:

Productnaam

Uncle Bob's Biologische Gedroogde Peren

Bereiken uitdrukken met behulp van grenzen

De WHERE-clausule stelt ons ook in staat om een ​​bereikvoorwaarde op een waarde te implementeren door meerdere voorwaarden te gebruiken. Als we bijvoorbeeld onze bovenstaande zoekopdracht willen uitvoeren en de resultaten willen beperken tot producten met prijzen tussen 15.00 en 20.00 uur, kunnen we de volgende zoekopdracht gebruiken:

SELECT productnaam, prijs per eenheid
VAN producten
WAAR Eenheidsprijs > 15,00 EN Eenheidsprijs < 20,00

Dit levert het onderstaande resultaat op:

Productnaam EenheidPrijs

Chai 18.00
Chang 19.00

Bereiken uitdrukken met TUSSEN

SQL biedt ook een snelkoppeling TUSSEN syntaxis die het aantal voorwaarden dat we moeten opnemen vermindert en de query leesbaarder maakt. In plaats van de twee WHERE-voorwaarden hierboven te gebruiken, kunnen we bijvoorbeeld dezelfde query uitdrukken als:

SELECT productnaam, prijs per eenheid
VAN producten
WAAR Eenheidsprijs TUSSEN 15.00 EN 20.00

Net als bij onze andere voorwaardeclausules, werkt BETWEEN ook met tekenreekswaarden. Als we een lijst willen maken van alle landen die beginnen met V, W of X, kunnen we de query gebruiken:

KIES productnaam
VAN producten
WAAR Productnaam TUSSEN "A" en "D"

Wat het resultaat oplevert:

Productnaam

Anijssiroop
Chai
Chang
Gumbo Mix van chef Anton Anton
Cajun-kruiden van chef Anton

De WHERE-component is een krachtig onderdeel van de SQL-taal waarmee u resultaten kunt beperken tot waarden die binnen gespecificeerde bereiken vallen. Het wordt heel vaak gebruikt om bedrijfslogica uit te drukken en zou deel moeten uitmaken van de toolkit van elke databaseprofessional. Het is vaak handig om algemene clausules op te nemen in een opgeslagen procedure om deze toegankelijk te maken voor mensen zonder kennis van SQL.

instagram story viewer