MySQL VELG erklæring med eksempler
Hva er SELECT-søk i MySQL?
SELECT QUERY brukes til å hente dataene fra MySQL database. Databaser lagrer data for senere henting. Hensikten med MySQL Velg er å returnere fra databasetabellene, en eller flere rader som samsvarer med et gitt kriterium. Velg spørring kan brukes i skriptspråk som PHP, Ruby, eller du kan utføre det via ledeteksten.
SQL SELECT-setningssyntaks
Det er den mest brukte SQL-kommandoen og har følgende generelle syntaks
SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName(s)] [HAVING condition] ORDER BY fieldName(s)
HER
- VELG er SQL-nøkkelordet som lar databasen vite at du ønsker å hente data.
- [DISTINKT | ALLE] er valgfrie nøkkelord som kan brukes til å finjustere resultatene som returneres fra SQL SELECT-setningen. Hvis ingenting er spesifisert, antas ALL som standard.
- {*| [fieldExpression [AS newName]} minst én del må spesifiseres, "*" valgte alle feltene fra det angitte tabellnavnet, fieldExpression utfører noen beregninger på de spesifiserte feltene, for eksempel å legge til tall eller sette sammen to strengfelt til ett.
- FRA tableName er obligatorisk og må inneholde minst én tabell, flere tabeller må skilles med komma eller slås sammen med JOIN-nøkkelordet.
- HVOR betingelse er valgfri, den kan brukes til å spesifisere kriterier i resultatsettet som returneres fra spørringen.
- GRUPPE AV brukes til å sette sammen poster som har samme feltverdier.
- HAR condition brukes til å spesifisere kriterier når du arbeider med nøkkelordet GROUP BY.
- REKKEFØLGE ETTER brukes til å spesifisere sorteringsrekkefølgen til resultatsettet.
*
Stjernesymbolet brukes til å velge alle kolonnene i tabellen. Et eksempel på en enkel SELECT-setning ser ut som den vist nedenfor.
SELECT * FROM `members`;
Utsagnet ovenfor velger alle feltene fra medlemstabellen. Semikolon er en terminate. Det er ikke obligatorisk, men anses som en god praksis å avslutte uttalelsene dine slik.
Praktiske eksempler
Klikk for å laste ned myflix DB som brukes til praktiske eksempler.
Du kan lære å importere .sql-filen til MySQL arbeidsbenk
Eksemplene er utført på de følgende to tabellene
Tabell 1: medlemmer bord
medlemsnummer | fulle_navn | kjønn | fødselsdato | fysisk_ adresse | postadresse | kontakt_nummer | emalje |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Hunn | 21-07-1980 | First Street tomt nr. 4 | Privat bag | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | Hunn | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
3 | Robert Phil | mann | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
4 | Gloria Williams | Hunn | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
Tabell 2: filmer bord
movie_id | tittel | direktør | år_utgitt | kategori_id |
---|---|---|---|---|
1 | Pirates of the Caribean 4 | Rob Marshall | 2011 | 1 |
2 | Glemte Sarah Marshal | Nicholas barnevogn | 2008 | 2 |
3 | X-Men | NULL | 2008 | NULL |
4 | Kode Navn Svart | Edgar Jimz | 2010 | NULL |
5 | Pappas småjenter | NULL | 2007 | 8 |
6 | engler og demoner | NULL | 2007 | 6 |
7 | Davinci-koden | NULL | 2007 | 6 |
9 | Honey måner | John Schultz | 2005 | 8 |
16 | 67 % skyldig | NULL | 2012 | NULL |
Få medlemsoppføring
La oss anta at vi ønsker å få en liste over alle de registrerte bibliotekmedlemmene fra databasen vår, vi vil bruke skriptet vist nedenfor for å gjøre det.
SELECT * FROM `members`;
Utfører skriptet ovenfor i MySQL arbeidsbenken gir følgende resultater.
medlemsnummer | fulle_navn | kjønn | fødselsdato | fysisk_ adresse | postadresse | kontakt_nummer | emalje |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Hunn | 21-07-1980 | First Street tomt nr. 4 | Privat bag | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | Hunn | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
3 | Robert Phil | mann | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
4 | Gloria Williams | Hunn | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
Spørringen ovenfor har returnert alle radene og kolonnene fra medlemstabellen.
La oss si at vi bare er interessert i å kun få full_navn, kjønn, fysisk_adresse og e-postfelt. Følgende skript vil hjelpe oss å oppnå dette.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
Utfører skriptet ovenfor i MySQL arbeidsbenken gir følgende resultater.
fulle_navn | kjønn | fysisk_adresse | emalje |
---|---|---|---|
Janet Jones | Hunn | First Street tomt nr. 4 | janetjones@yagoo.cm |
Janet Smith Jones | Hunn | Melrose 123 | jj@fstreet.com |
Robert Phil | mann | 3rd Street 34 | rm@tstreet.com |
Gloria Williams | Hunn | 2nd Street 23 | NULL |
Får filmoversikt
Husk i diskusjonen ovenfor at vi nevner uttrykk som er brukt i SELECT-utsagn. La oss si at vi ønsker å få en liste over filmer fra databasen vår. Vi ønsker å ha filmtittelen og navnet på filmregissøren i ett felt. Navnet på filmregissøren skal stå i parentes. Vi ønsker også å få året da filmen ble utgitt. Følgende skript hjelper oss å gjøre det.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
HER
- The Concat () MySQL funksjon brukes slå sammen kolonneverdiene.
- Linjen "Concat (`tittel`, ' (', `regissør`, ')') får tittelen, legger til en åpningsparentes etterfulgt av navnet på regissøren og legger til den avsluttende parentesen.
Strengdeler skilles ved hjelp av kommaer i Concat ()-funksjonen.
Utfører skriptet ovenfor i MySQL arbeidsbenken produserer følgende resultatsett.
Concat(`tittel`, '(', `regissør`, ')') | år_utgitt |
---|---|
Pirates of the Caribean 4 (Rob Marshall) | 2011 |
Å glemme Sarah Marshal (Nicholas Stoller) | 2008 |
NULL | 2008 |
Kodenavn Svart (Edgar Jimz) | 2010 |
NULL | 2007 |
NULL | 2007 |
NULL | 2007 |
Honey mooners (John Schultz) | 2005 |
NULL | 2012 |
Alias feltnavn
Eksemplet ovenfor returnerte sammenkoblingskoden som feltnavnet for resultatene våre. Anta at vi ønsker å bruke et mer beskrivende feltnavn i resultatsettet vårt. Vi vil bruke kolonnealiasnavnet for å oppnå det. Følgende er den grunnleggende syntaksen for kolonnealiasnavnet
SELECT `column_name|value|expression` [AS] `alias_name`;
HER
- "VELG ` kolonnenavn|verdi|uttrykk `" er den vanlige SELECT-setningen som kan være et kolonnenavn, verdi eller uttrykk.
- "[SOM]" er det valgfrie nøkkelordet før aliasnavnet som angir uttrykket, verdien eller feltnavnet vil bli returnert som.
- «alias_name» er aliasnavnet som vi ønsker å returnere i vårt resultatsett som feltnavn.
Spørringen ovenfor med et mer meningsfylt kolonnenavn
SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;
Vi får følgende resultat
Concat | år_utgitt |
---|---|
Pirates of the Caribean 4 (Rob Marshall) | 2011 |
Å glemme Sarah Marshal (Nicholas Stoller) | 2008 |
NULL | 2008 |
Kodenavn Svart (Edgar Jimz) | 2010 |
NULL | 2007 |
NULL | 2007 |
NULL | 2007 |
Honey mooners (John Schultz) | 2005 |
NULL | 2012 |
Få medlemsoppføring som viser fødselsår
Anta at vi ønsker å få en liste over alle medlemmene som viser medlemsnummer, fullt navn og fødselsår, kan vi bruke VENSTRE strengfunksjon for å trekke ut fødselsåret fra fødselsdatofeltet. Skriptet som vises nedenfor hjelper oss å gjøre det.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
HER
- “VENSTRE(`fødselsdato`,4)” de VENSTRE strengfunksjon godtar fødselsdatoen som parameter og returnerer bare 4 tegn fra venstre.
- «SOM «fødselsår»» er den kolonnealiasnavn som vil bli returnert i våre resultater. Legg merke til AS-nøkkelord er valgfritt, kan du utelate det, og spørringen vil fortsatt fungere.
Utfører spørringen ovenfor i MySQL arbeidsbenk mot myflixdb gir oss resultatene vist nedenfor.
medlemsnummer | fulle_navn | fødselsår |
---|---|---|
1 | Janet Jones | 1980 |
2 | Janet Smith Jones | 1980 |
3 | Robert Phil | 1989 |
4 | Gloria Williams | 1984 |
SQL ved hjelp av MySQL Workbench
Vi skal nå bruke MySQL arbeidsbenk for å generere skriptet som viser alle feltnavnene fra kategoritabellen vår.
1. Høyreklikk på kategoritabellen. Klikk på "Velg rader - Begrens 1000"
2. MySQL workbench vil automatisk opprette en SQL-spørring og lime inn i editoren.
3. Søkeresultater vises
Legg merke til at vi ikke skrev SELECT-setningen selv. MySQL arbeidsbenken genererte det for oss.
Hvorfor bruke SELECT SQL-kommandoen når vi har MySQL Arbeidsbenk?
Nå tenker du kanskje hvorfor lære SQL SELECT-kommandoen for å spørre etter data fra databasen når du ganske enkelt kan bruke et verktøy som f.eks. MySQL workbench's for å få de samme resultatene uten kunnskap om SQL-språket. Selvfølgelig er det mulig, men lære hvordan du bruker SELECT-kommandoen gir deg mer fleksibilitet og kontroll over din SQL SELECT-setninger.
MySQL arbeidsbenk faller i kategorien "Forespørsel etter eksempel” QBE-verktøy. Den er ment å bidra til å generere SQL-setninger raskere for å øke brukerproduktiviteten.
Å lære SQL SELECT-kommandoen kan gjøre det mulig for deg å lage komplekse spørsmål som ikke enkelt kan genereres ved hjelp av Query by Example-verktøy som f.eks MySQL arbeidsbenk.
For å forbedre produktiviteten kan du generere koden ved hjelp av MySQL arbeidsbenk deretter tilpasse det også oppfylle dine krav. Dette kan bare skje hvis du forstår hvordan SQL-setningene fungerer!
Oppsummering
- SQL SELECT-nøkkelordet brukes til å søke etter data fra databasen, og det er den mest brukte kommandoen.
- Den enkleste formen har syntaksen "SELECT * FROM tableName;"
- Uttrykk kan også brukes i select-setningen. Eksempel "VELG mengde + pris FRA salg"
- SQL SELECT-kommandoen kan også ha andre valgfrie parametere som WHERE, GROUP BY, HAVING, ORDER BY. De vil bli diskutert senere.
- MySQL workbench kan hjelpe med å utvikle SQL-setninger, utføre dem og produsere utdataresultatet i samme vindu.