Skip to main content

Velger data innenfor rekkefølge i SQL

Game Theory: Why You CAN'T Beat Super Smash Bros Ultimate! (Kan 2024)

Game Theory: Why You CAN'T Beat Super Smash Bros Ultimate! (Kan 2024)
Anonim

Strukturert spørrespråk (SQL) gir databasebrukerne muligheten til å lage tilpassede spørringer for å hente informasjon fra databaser. I en tidligere artikkel undersøkte vi utvinning av informasjon fra en database ved hjelp av SQL SELECT-spørringer. La oss utvide den diskusjonen og utforske hvordan du kan utføre avanserte spørringer for å hente data som samsvarer med bestemte forhold.La oss vurdere et eksempel basert på den vanlige Northwind-databasen, som ofte sendes med databaseprodukter som en veiledning.

Her er et utdrag fra databasens produkttabell:

Produkttabell
Produkt IDProduktnavnSupplierIDQuantityPerUnitEnhetsprisUnitsInStock
1Chai110 bokser x 20 poser18.0039
2Chang124 - 12 oz flasker19.0017
3Anis sirup112 - 550 ml flasker10.0013
4Kokk Antons Cajun krydder248 - 6 oz krukker22.0053
5Kokk Antons Gumbo Mix236 bokser21.350
6Bestemors Boysenberry Spread312 - 8 oz krukker25.00120
7Onkel Bobs organiske tørkede pærer312 - 1 pund pkgs.30.0015

Enkle grensebetingelser

De første begrensningene vi stiller på forespørselen, involverer enkle grenseforhold. Vi kan spesifisere disse i WHERE-klausulen i SELECT-spørringen, ved hjelp av enkle betingelseserklæringer konstruert med standardoperatører, for eksempel <,>,> = og <=.

Først, la oss prøve en enkel spørring som lar oss trekke ut en liste over alle produktene i databasen som har en UnitPrice på mer enn 20,00:

VELG produktnavn, UnitPrice FROM produkter WHERE UnitPrice> 20.00

Dette gir en liste over fire produkter, som vist nedenfor:

Produktnavn UnitPrice ------- -------- Chef Antons Gumbo Mix 21,35 Kokk Antons Cajun Krydder 22.00 Grandma's Boysenberry Spread 25.00 Uncle Bobs Organisk Tørket Pærer 30.00

Vi kan også bruke WHERE-klausulen med strengverdier. Dette betyr i utgangspunktet tegn til tall, med A som representerer verdien 1 og Z som representerer verdien 26. For eksempel kan vi vise alle produkter med navn som begynner med U, V, W, X, Y eller Z med følgende spørring:

SELECT Produktnavn FRA produkter WHERE Produktnavn> = 'T'

Hvilket gir resultatet:

Produktnavn ------- Uncle Bobs organiske tørkede pærer

Uttrykke ranger ved hjelp av grenser

WHERE-klausulen tillater oss også å implementere en rekkevidde på en verdi ved å bruke flere forhold. Hvis vi for eksempel vil ta spørsmålet over og begrense resultatene til produkter med priser mellom kl. 15.00 og 20.00, kan vi bruke følgende spørring:

VELG produktnavn, UnitPrice FROM produkter WHERE UnitPrice> 15.00 og UnitPrice <20.00

Dette gir resultatet som vist nedenfor:

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

Uttrykke ranger med mellomvei

SQL gir også en snarvei MELLOM syntax som reduserer antall forhold vi må inkludere og gjør spørringen mer lesbar. For eksempel, i stedet for å bruke de to WHERE betingelsene ovenfor, kan vi uttrykke det samme spørsmålet som:

VELG produktnavn, UnitPrice FROM produkter WHERE UnitPrice mellom 15.00 og 20.00

Som med våre andre betingelsesklausuler, fungerer MELLOM også med strengverdier. Hvis vi ønsket å lage en liste over alle land som begynner med V, W eller X, kan vi bruke spørringen:

VELG produktnavn FRA produkter WHERE Produktnavn MELLOM "A" og "D"

Hvilket gir resultatet:

Produktnavn ------- Anis sirup Chai Chang Chef Antons Gumbo Mix Chef Antonas Cajun krydder

WHERE-klausulen er en kraftig del av SQL-språket som lar deg begrense resultater til verdier som faller innenfor angitte områder. Det er svært vanlig å bidra til å uttrykke forretningslogikk og bør være en del av hver database profesjonelle verktøykasse.

Det er ofte nyttig å inkorporere vanlige klausuler i en lagret prosedyre for å gjøre den tilgjengelig for de som ikke har SQL-kunnskaper.