Oversettelsen av selve SQL-forkortelsen (språket er struktureltorganiserte spørringer) gjenspeiler det faktum at spørringer er det mest brukte elementet i SQL. Select (SQL) - en setning som inneholder instruksjoner til DBMS for å vise viss informasjon - vil hjelpe deg med å velge de nødvendige radene, automatisk ekskludere overflødige data, hoppe over eller omorganisere kolonner.
Operatørsyntaks
For å bruke en hvilken som helst operatør riktig,Du må først gjøre deg kjent med syntaksen til det aktuelle programmeringsspråket. Når vi snakker spesifikt om SQL-språket, har Select (operatøren) følgende syntaks:
Å velge | Forteller databasen at vi sender inn en forespørsel. Dette er nøkkelordet. |
En to tre... | Liste over kolonner som skal vises |
Fra | Indikerer navnet på tabellen som data vil bli hentet fra. Også et obligatorisk nøkkelord. |
Dette er den såkalte "korte" operatørsyntaksen, men den indikerer for oss at uten søkeordene Velg og fra vil ikke DBMS utføre søket vårt.
Den komplette syntaksen til operatøren er vist i følgende figur:
Her lar Where-leddet deg avgrense søket ved å spesifisere en betingelse.
For å gruppere verdier og bruke en aggregert funksjon på dem, bruk Group by-leddet, og for å tydeliggjøre resultatet etter gruppering, bruk Having-leddet.
Sorter etter lar deg sortere verdiene til de valgte kolonnene i stigende eller synkende rekkefølge.
For å gjøre deg mer kjent med Select-operatoren, forestill deg at vi har følgende tabell i databasen vår Katter med informasjon:
ID | Rase | Navn | Fødselsdag | Farge |
1 | Bobtail | Lord | 01.04.2017 | Grå |
2 | Krøll | Finte | 16.03.2017 | Hvit |
3 | Mau | panter | 30.03.2017 | Svart |
4 | Bobtail | Tyson | 23.02.2017 | Grå |
5 | Burmilla | Athena | 08.01.2017 | Svart |
Hver rad i tabellen inneholder et unikt nummerkattunge, dens rase, navn, fødselsdato og farge. Deretter skal vi se på hvordan Select-operatoren (SQL) fungerer, basert på dataene fra denne tabellen.
Hvordan data hentes fra en tabell
Som diskutert ovenfor, brukes nøkkelord nødvendigvis for å velge nødvendig informasjon fra tabellen.
Etter nøkkelordet Velg, angis kolonnene som skal skrives ut. Du kan lage en liste over de nødvendige kolonnene atskilt med komma, så vil hele strukturen se slik ut:
Velg farge, rase, navn Fra Cats |
Som du kan se, kan vi ordne kolonnene i den rekkefølgen vi trenger dem. I tillegg kan vi vise kun de kolonnene vi trenger.
Det er også en snarvei for å vise alle kolonnene i tabellen. For å gjøre dette, etter Velg er en stjerne (*) indikert, atskilt med et mellomrom. Hele strukturen vil se slik ut:
Plukke ut * Fra Cats |
Resultatet av spørringen ovenfor er hele Cats-tabellen, presentert slik den var inneholdt på slutten av den siste delen.
Mange er interessert i hvordan man plassererutførelsesresultater i SQL Velg inn i en streng. Oftest er dette nødvendig når det er nødvendig å kombinere etternavn, fornavn og patronym til en person som ligger i separate kolonner.
I vårt tilfelle vil vi kombinere rasen og fargen på katter fraKatter bord. Nyansen er at forskjellige DBMS-er bruker forskjellige tegn for strengsammenkobling. I noen tilfeller er det ganske enkelt et pluss (+), i andre er det en dobbel skråstrek (||) eller et og-tegn (&), noen ganger brukes også Concat-operanden. Derfor, før du slår sammen, må du lese merknaden for den spesifikke DBMS-en du jobber med.
Velg rase || ', ' || farge Fra katter |
Resultatet blir følgende:
Rase, farge |
Bobtail, grå |
Krøll, hvit |
Mau, svart |
Bobtail, grå |
Burmilla, svart |
Eliminere overflødige data
Distinct er en Select (SQL) funksjon som lar deg ekskludere duplisering av helt identiske rader fra utvalgsresultatet.
For eksempel ønsker vi å finne ut hvilke raser av katter som er i tabellen vår. Hvis vi bruker en enkel spørring:
Velg rase Fra Cats |
Da får vi det ganske forventede resultatet:
Rase |
Bobtail |
Krøll |
Mau |
Bobtail |
Burmilla |
Som du kan se, dupliseres bobtailrasen to ganger. Distinkt-argumentet vil eliminere duplisering; du trenger bare å legge til spørringen:
Velg distinkt rase Fra Cats |
Avklaring av forespørselen
I virkeligheten gir nesten ingen spørringer ut data som et komplett sett med tabellrader. La oss vurdere hvilken klausul i Select (SQL) som lar deg angi kriterier for å velge bare de nødvendige radene.
Hvor er en slik klausul.Denne setningen bruker et predikat - et betinget uttrykk som produserer utdataverdien "true" eller "false". Velg-operatoren vil bare hente de dataene fra tabellen som det betingede uttrykket evalueres til True.
En enkel prøve vil hjelpe deg å forstå dette designet. La oss si at vi vil vite alt om svarte katter.
Plukke ut * Fra katter Hvor farge = 'Sort' |
Resultatet av denne spørringen vil være følgende tabellrader:
3 | Mau | panter | 30.03.2017 | Svart |
5 | Burmilla | Athena | 08.01.2017 | Svart |
Du kan også kombinere betingelser ved å bruke de logiske operatorene And, Or, Not.
Tilbud Gruppe etter
Group by-klausulen som brukes i Select (SQL) lar deg gruppere spørringer etter verdien av en spesifikk kolonne (eller kolonner) og deretter bruke en aggregert funksjon på dem.
Aggregerte funksjoner inkluderer:
- Count – Beregner antall rader hentet av spørringen.
- Sum er den aritmetiske summen av alle valgte kolonneverdier.
- Min – viser minimum av de valgte kolonneverdiene.
- Maks – henholdsvis maksimum av de valgte kolonneverdiene.
- Gj.sn. – gjennomsnittsverdi.
Driftsskjemaet til dette forslaget er det enklesteforstå med et konkret eksempel. La oss si at vi vil vite hvor mange kattunger av hver rase vi har. For å gjøre dette må du lage følgende enkle spørring:
Velg rase, antall(*) Fra katter Gruppe etter rase |
Resultatet av utførelse vil være følgende tabell:
Rase | Telle |
Bobtail | 2 |
Krøll | 1 |
Mau | 1 |
Burmilla | 1 |
Som du kan se, har vi to bobtail kattunger,resten er bare en. I praksis, med en slik forespørsel, basert på tabellen vår, kan oppdretteren forstå hvilke raser av katter som er etterspurt blant kjøpere og hvilke som ikke er det.
Det er sannsynlig at på grunn av det enorme antalletposter i den virkelige tabellen, vil du ønske å avgrense søket ytterligere og vise bare de rasene av kattunger som det ikke er mer enn for eksempel ti igjen av. For å avgrense eller filtrere grupper, bruk Having-leddet. Den lar deg forkaste spesifikke grupper, lik Where-setningen som forkaster individuelle rader. Betingelsen er spesifisert av aggregatfunksjonen. La oss legge til forespørselen:
Velg rase, antall(*) Fra katter Gruppe etter rase Har telling(*) <=10 |
Siden vi satte betingelsen «antall kattungerhver rase er ikke mer enn 10", da blir resultatet det samme som i eksemplet uten avklaring. Men her er det viktig å forstå selve opplegget for hvordan Having-klausulen fungerer. Men hvis vi endrer den logiske betingelsen til Å ha telling(*) =1, vil resultatet bli redusert til tre linjer og vil vise rasene av kattunger, hvorav det bare er én igjen.
Sortering
La oss ta en titt på Order by, en klausul i Select (SQL)-operatoren som lar deg sortere utdataradene etter stigende eller synkende verdier i én eller flere kolonner.
Det er viktig å huske at Order by er den siste klausulen i hele Select-setningskonstruksjonen. Den plasseres etter Velg, Fra, Hvor, Grupper etter, Har.
Det er tre viktige punkter når du utfører sortering:
1) Du kan spesifisere et hvilket som helst antall kolonner, som hver kan sorteres individuelt enten i stigende (ASC) eller synkende (DESC) rekkefølge.
2) Alle spesifiserte kolonner i Order by-klausulen må være til stede blant de valgte kolonnene i Select.
3) Det er ikke nødvendig å liste opp de spesifikke navnene på kolonnene som skal sorteres; du kan ganske enkelt angi numrene deres, som de går under i Select-setningen.
Vi håper at du ved hjelp av vår artikkel har fått grunnleggende kunnskap om bruk av SQL-spørringer og nå enkelt kan velge nødvendig informasjon fra DBMS.