Skip to main content

Gegevens selecteren binnen bereiken in SQL

Top 25 Excel 2016 Tips and Tricks (April 2025)

Top 25 Excel 2016 Tips and Tricks (April 2025)
Anonim

De gestructureerde querytaal (SQL) biedt databasegebruikers de mogelijkheid om aangepaste query's te maken om informatie uit databases te extraheren. In een eerder artikel hebben we gekeken naar het extraheren van informatie uit een database met behulp van SQL SELECT-query's. Laten we die discussie uitbreiden en onderzoeken hoe u geavanceerde query's kunt uitvoeren om gegevens op te halen die voldoen aan 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:

Producttabel
Product-IDProductnaamLeverancier IDHoeveelheid per eenheidEenheid prijsAantal op voorraad
1Chai110 dozen x 20 zakken18.0039
2Chang1Flessen van 24 - 12 oz19.0017
3Anijsstroop112 - 550 ml flessen10.0013
4Chef Anton's Cajun kruiden248 - 6 oz potten22.0053
5Gumbo Mix van chef Anton236 dozen21.350
6Grandma's Boysenberry Spread312 - 8 oz potten25.00120
7Uncle Bob's biologische gedroogde peren312 kg pkg.30.0015

Eenvoudige randvoorwaarden

De eerste beperkingen die we op onze vraag stellen, betreffen eenvoudige randvoorwaarden. We kunnen deze specificeren in de WHERE-component van de query SELECT, met behulp van eenvoudige voorwaardeinstructies die zijn geconstrueerd met standaardoperatoren, zoals <,>,> = en <=.

Laten we eerst een eenvoudige query proberen die ons in staat stelt om een ​​lijst met alle producten in de database te extraheren die een UnitPrice van meer dan 20.00 hebben:

SELECT ProductName, UnitPrice FROM products WHERE UnitPrice> 20,00

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

Productnaam Eenheidsprijs -------- - Chef Anton's Gumbo Mix 21.35 Chef Anton's Cajun kruiden 22.00 Grandma's Boysenberry Spread 25.00 Uncle Bob's biologische gedroogde peren 30.00

We kunnen ook de WHERE-component gebruiken met tekenreekswaarden. Dit stelt in feite karakters gelijk aan getallen, waarbij A staat voor de waarde 1 en Z voor de waarde 26. We kunnen bijvoorbeeld alle producten met namen die beginnen met U, V, W, X, Y of Z weergeven met de volgende query:

SELECT ProductName FROM producten WAAR Productnaam> = 'T'

Welke het resultaat produceert:

Productnaam ------- Uncle Bob's biologische gedroogde peren

Ranges uitdrukken met behulp van Grenzen

Met de WHERE-component kunnen we ook een bereikvoorwaarde op een waarde implementeren door meerdere voorwaarden te gebruiken. Als we bijvoorbeeld onze vraag hierboven willen opnemen en de resultaten beperken tot producten met prijzen tussen 15.00 en 20.00, kunnen we de volgende query gebruiken:

SELECT ProductName, UnitPrice FROM products WHERE UnitPrice> 15.00 AND UnitPrice <20.00

Dit levert het hieronder getoonde resultaat op:

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

Ranges uitdrukken met BETWEEN

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

SELECT ProductName, UnitPrice FROM products WHERE UnitPrice tussen 15.00 en 20.00 uur

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

SELECT ProductName FROM products WHERE ProductName TUSSEN "A" en "D"

Welke het resultaat produceert:

Productnaam ------- Anijszaad siroop Chai Chang Chef Anton's Gumbo Mix Chef Anton's Cajun kruiden

De WHERE-component is een krachtig onderdeel van de SQL-taal waarmee u resultaten kunt beperken tot waarden die binnen opgegeven bereiken vallen. Het wordt heel vaak gebruikt om bedrijfslogica tot uitdrukking te brengen en moet een onderdeel zijn van de toolkit van elke databaseprofessional.

Het is vaak handig om veelgebruikte clausules op te nemen in een opgeslagen procedure om deze toegankelijk te maken voor mensen zonder SQL-kennis.