Välj Data inom intervall i SQL

De Structured Query Language (SQL) ger databasanvändare möjlighet att skapa anpassade frågor för att extrahera information från databaser. I en tidigare artikel undersökte vi extrahera information från en databas med SQL SELECT-frågor. Låt oss utöka den diskussionen och utforska hur du kan utföra avancerade frågor för att hämta data som matchar specifika villkor.

Låt oss överväga ett exempel baserat på det vanliga Nordanvind databas, som ofta levereras med databasprodukter som en självstudie.

Här är ett utdrag från databasens produkttabell:

Serienummer Produktnamn Leverantörs-ID QuantityPerUnit Enhetspris EnheterInStock
1 Chai 1 10 lådor x 20 påsar 18.00 39
2 Chang 1 24 - 12 oz flaskor 19.00 17
3 Anis-sirap 1 12 - 550 ml flaskor 10.00 13
4 Kock Anton's Cajun-kryddor 2 48 - 6 oz burkar 22.00 53
5 Kock Anton's Gumbo Mix 2 36 lådor 21.35 0
6 Farmor's Boysenberry Spread 3 12 - 8 oz burkar 25.00 120
7 Farbror Bobs organiska torkade päron 3 12 - 1 lb pkgs. 30.00 15
Produkttabell

Enkla gränsvillkor

De första begränsningarna vi lägger till vår fråga innebär enkla gränsvillkor. Vi kan specificera dessa i WHERE-paragrafen i SELECT-frågan med hjälp av enkla tillståndsuttalanden konstruerade med standardoperatörer, som ,> = och <=.

instagram viewer

Låt oss först prova en enkel fråga som låter oss extrahera en lista över alla produkter i databasen som har en enhetspris på mer än 20.00:

VÄLJ produktnamn, enhetspris
FRÅN produkter
VAR UnitPris> 20.00

Detta ger en lista med fyra produkter, som visas nedan:

Produktnamn Enhetspris

Kock Anton's Gumbo Mix 21.35
Kock Anton's Cajun-kryddor 22.00
Farmor's Boysenberry Spread 25.00
Farbror Bobs organiska torkade päron 30.00

Vi kan också använda WHERE-satsen med strängvärden. Detta motsvarar i grunden tecken till siffror, där A representerar värdet 1 och Z representerar värdet 26. Vi kan till exempel visa alla produkter med namn som börjar med U, V, W, X, Y eller Z med följande fråga:

VÄLJ Produktnamn
FRÅN produkter
VAR Produktnamn> = 'T'

Vilket ger resultatet:

Produktnamn

Farbror Bobs organiska torkade päron

Uttrycka intervall med gränser

WHERE-klausulen tillåter oss också att implementera ett intervallvillkor på ett värde genom att använda flera villkor. Om vi ​​till exempel vill ta vår fråga ovan och begränsa resultaten till produkter med priser mellan 15.00 och 20.00, kan vi använda följande fråga:

VÄLJ produktnamn, enhetspris
FRÅN produkter
VAR UnitPrice> 15.00 AND UnitPrice <20.00

Detta ger resultatet som visas nedan:

Produktnamn Enhetspris

Chai 18.00
Chang 19.00

Uttrycka intervall MELLAN

SQL ger också en genväg MELLAN syntax som minskar antalet villkor som vi behöver inkludera och gör frågan mer läsbar. I stället för att använda de två WHERE-villkoren ovan kan vi till exempel uttrycka samma fråga som:

VÄLJ produktnamn, enhetspris
FRÅN produkter
VAR UnitPris MELLAN 15.00 OCH 20.00

Som med våra andra villkor, fungerar också MELLAN strängvärden. Om vi ​​ville ta fram en lista över alla länder som börjar med V, W eller X kan vi använda frågan:

VÄLJ Produktnamn
FRÅN produkter
VAR Produktnamn MELLAN "A" och "D"

Vilket ger resultatet:

Produktnamn

Anis-sirap
Chai
Chang
Kock Anton's Gumbo Mix
Kock Anton's Cajun-kryddor

WHERE-klausulen är en kraftfull del av SQL-språket som låter dig begränsa resultat till värden som faller inom angivna intervall. Det används ofta för att uttrycka affärslogik och bör vara en del av varje databasproffs verktygslåda. Det är ofta bra att införliva vanliga klausuler i ett lagrat förfarande för att göra det tillgängligt för dem utan SQL-kunskap.