Vælg Data inden for områder i SQL

Det Structured Query Language (SQL) giver databasebrugerne mulighed for at oprette tilpassede forespørgsler for at udtrække information fra databaser. I en tidligere artikel undersøgte vi at udtrække information fra en database ved hjælp af SQL SELECT-forespørgsler. Lad os udvide denne diskussion og undersøge, hvordan du kan udføre avanceret forespørgsler for at hente data, der matcher specifikke betingelser.

Lad os overveje et eksempel baseret på det almindeligt anvendte Nordvind database, der ofte sendes med databaseprodukter som en tutorial.

Her er et uddrag fra databasens produkttabel:

ProduktID Produktnavn Leverandør-ID QuantityPerUnit Pris per stk Enheder på lager
1 Chai 1 10 kasser x 20 poser 18.00 39
2 Chang 1 24 - 12 oz flasker 19.00 17
3 Anis sirup 1 12 - 550 ml flasker 10.00 13
4 Kokk Anton's Cajun-krydderier 2 48 - 6 oz krukker 22.00 53
5 Kokken Anton's Gumbo Mix 2 36 kasser 21.35 0
6 Bedstemors Boysenbær-spredning 3 12 - 8 oz krukker 25.00 120
7 Onkel Bobs organiske tørrede pærer 3 12 - 1 lb pkgs. 30.00 15
Produkt tabel
instagram viewer

Enkle grænseforhold

De første begrænsninger, vi lægger på vores forespørgsel, involverer enkle randbetingelser. Vi kan specificere disse i WHERE-klausulen i SELECT-forespørgslen ved hjælp af enkle betingelser, der er konstrueret med standardoperatorer, såsom ,> = og <=.

Lad os først prøve en simpel forespørgsel, der giver os mulighed for at udtrække en liste over alle produkter i databasen, der har en enhedspris på mere end 20.00:

VÆLG Produktnavn, UnitPrice
FRA produkter
HVOR UnitPrice> 20.00

Dette giver en liste over fire produkter som vist nedenfor:

Produktnavn Enhedspris

Kokken Anton's Gumbo Mix 21.35
Kokken Anton's Cajun-krydderier 22.00
Bedstemors Boysenbær-opslag 25.00
Onkel Bobs organiske tørrede pærer 30.00

Vi kan også bruge WHERE-klausulen med strengværdier. Dette svarer stort set til tegn til tal, hvor A repræsenterer værdien 1 og Z repræsenterer værdien 26. For eksempel kunne vi vise alle produkter med navne, der begynder med U, V, W, X, Y eller Z med følgende forespørgsel:

VÆLG Produktnavn
FRA produkter
WHERE ProductName> = 'T'

Hvilket giver resultatet:

Produktnavn

Onkel Bobs organiske tørrede pærer

Udtrykke områder ved hjælp af grænser

WHERE-klausulen giver os også mulighed for at implementere en rækkebetingelse på en værdi ved hjælp af flere betingelser. Hvis vi f.eks. Vil tage vores forespørgsel ovenfor og begrænse resultaterne til produkter med priser mellem 15.00 og 20.00, kan vi bruge følgende forespørgsel:

VÆLG Produktnavn, UnitPrice
FRA produkter
HVOR UnitPrice> 15.00 AND UnitPrice <20.00

Dette giver resultatet vist nedenfor:

Produktnavn Enhedspris

Chai 18.00
Ændring 19.00

Udtrykker intervaller MELLEM

SQL giver også en genvej MELLEM syntaks, der reducerer antallet af betingelser, som vi skal medtage, og gør forespørgslen mere læselig. For eksempel i stedet for at bruge de to WHERE-betingelser ovenfor, kunne vi udtrykke den samme forespørgsel som:

VÆLG Produktnavn, UnitPrice
FRA produkter
HVOR UnitPrice MELLEM 15.00 OG 20.00

Som med vores andre betingelsesklausuler fungerer BETWEEN også med strengværdier. Hvis vi ville fremstille en liste over alle lande, der begynder med V, W eller X, kunne vi bruge forespørgslen:

VÆLG Produktnavn
FRA produkter
HVOR Produktnavn MELLEM "A" og "D"

Hvilket giver resultatet:

Produktnavn

Anis sirup
Chai
Chang
Kokken Anton's Gumbo Mix
Kokk Anton's Cajun-krydderier

WHERE-klausulen er en stærk del af SQL-sproget, der giver dig mulighed for at begrænse resultaterne til værdier, der falder inden for specificerede områder. Det bruges meget ofte til at hjælpe med at udtrykke forretningslogik og bør være en del af enhver databaseprofessionals værktøjssæt. Det er ofte nyttigt at indarbejde almindelige klausuler i en lagret procedure for at gøre det tilgængeligt for dem uden SQL-viden.