MySQL VÆLG erklæring med eksempler
Hvad er SELECT-forespørgsel i MySQL?
SELECT QUERY bruges til at hente data fra MySQL database. Databaser gemmer data til senere hentning. Formålet med MySQL Vælg er at returnere fra databasetabellerne en eller flere rækker, der matcher et givet kriterium. Vælg forespørgsel kan bruges i scriptsprog som PHP, Ruby, eller du kan udføre den via kommandoprompten.
SQL SELECT-sætningssyntaks
Det er den mest brugte SQL-kommando 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
- SELECT er det SQL-nøgleord, der lader databasen vide, at du vil hente data.
- [SÆRLIGE | ALLE] er valgfri nøgleord, der kan bruges til at finjustere de resultater, der returneres fra SQL SELECT-sætningen. Hvis intet er angivet, antages ALLE som standard.
- {*| [fieldExpression [AS newName]} mindst én del skal angives, "*" valgte alle felterne fra det angivne tabelnavn, fieldExpression udfører nogle beregninger på de angivne felter, såsom at tilføje tal eller sætte to strengfelter sammen til ét.
- FRA tableName er obligatorisk og skal indeholde mindst én tabel, flere tabeller skal adskilles ved hjælp af kommaer eller forbindes ved hjælp af JOIN nøgleordet.
- HVOR betingelse er valgfri, den kan bruges til at angive kriterier i resultatsættet, der returneres fra forespørgslen.
- GROUP BY bruges til at sammensætte poster, der har de samme feltværdier.
- SOM betingelse bruges til at angive kriterier, når der arbejdes med nøgleordet GROUP BY.
- BESTIL BY bruges til at angive sorteringsrækkefølgen for resultatsættet.
*
Stjernesymbolet bruges til at vælge alle kolonnerne i tabellen. Et eksempel på en simpel SELECT-sætning ser ud som den, der er vist nedenfor.
SELECT * FROM `members`;
Ovenstående sætning vælger alle felterne fra medlemstabellen. Semikolon er en erklæring terminate. Det er ikke obligatorisk, men betragtes som en god praksis at afslutte dine udtalelser sådan.
Praktiske eksempler
Klik for at downloade myflix DB brugt til praktiske eksempler.
Du kan lære at importere .sql-filen til MySQL Arbejdsbænk
Eksemplerne er udført på de følgende to tabeller
Tabel 1: medlemmer bord
medlemsnummer | fulde_navne | køn | fødselsdato | fysisk adresse | postadresse | kontakt_nummer | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Kvinde | 21-07-1980 | First Street Plot nr. 4 | Privat taske | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | Kvinde | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
3 | Robert Phil | Mand | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
4 | Gloria Williams | Kvinde | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
Tabel 2: film bord
film_id | titel | direktør | år_udgivet | kategori_id |
---|---|---|---|---|
1 | Pirates of the Caribean 4 | Rob Marshall | 2011 | 1 |
2 | Glemte Sarah Marshal | Nicholas Stoller | 2008 | 2 |
3 | X-Men | NULL | 2008 | NULL |
4 | Kode Navn Sort | Edgar Jimz | 2010 | NULL |
5 | Daddy's Little Girls | NULL | 2007 | 8 |
6 | Engle og dæmoner | NULL | 2007 | 6 |
7 | Davinci-koden | NULL | 2007 | 6 |
9 | Honey måner | John Schultz | 2005 | 8 |
16 | 67 % skyldig | NULL | 2012 | NULL |
Få medlemsliste
Lad os antage, at vi ønsker at få en liste over alle de registrerede biblioteksmedlemmer fra vores database, vi ville bruge scriptet vist nedenfor til at gøre det.
SELECT * FROM `members`;
Udførelse af ovenstående script i MySQL workbench giver følgende resultater.
medlemsnummer | fulde_navne | køn | fødselsdato | fysisk adresse | postadresse | kontakt_nummer | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Kvinde | 21-07-1980 | First Street Plot nr. 4 | Privat taske | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | Kvinde | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
3 | Robert Phil | Mand | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
4 | Gloria Williams | Kvinde | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
Vores ovenstående forespørgsel har returneret alle rækker og kolonner fra medlemstabellen.
Lad os sige, at vi kun er interesserede i kun at få felterne fulde_navne, køn, fysisk_adresse og e-mail. Følgende script vil hjælpe os med at opnå dette.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
Udførelse af ovenstående script i MySQL workbench giver følgende resultater.
fulde_navne | køn | fysisk adresse | |
---|---|---|---|
Janet Jones | Kvinde | First Street Plot nr. 4 | janetjones@yagoo.cm |
Janet Smith Jones | Kvinde | Melrose 123 | jj@fstreet.com |
Robert Phil | Mand | 3rd Street 34 | rm@tstreet.com |
Gloria Williams | Kvinde | 2nd Street 23 | NULL |
Hent filmoversigt
Husk i vores ovenstående diskussion, at vi nævner udtryk, der er blevet brugt i SELECT-sætninger. Lad os sige, at vi ønsker at få en liste over film fra vores database. Vi ønsker at have filmtitlen og navnet på filminstruktøren i ét felt. Filminstruktørens navn skal stå i parentes. Vi ønsker også at få det år, hvor filmen blev udgivet. Følgende script hjælper os med at gøre det.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
HER
- The Concat () MySQL funktion bruges sammenføj kolonneværdierne.
- Linjen "Concat (`titel`, '(', `instruktør`, ')') får titlen, tilføjer en indledende parentes efterfulgt af navnet på instruktøren og tilføjer derefter den afsluttende parentes.
Strengdele adskilles ved hjælp af kommaer i funktionen Concat ().
Udførelse af ovenstående script i MySQL workbench producerer følgende resultatsæt.
Concat(`title`, '(', `instruktør`, ')') | år_udgivet |
---|---|
Pirates of the Caribean 4 (Rob Marshall) | 2011 |
At glemme Sarah Marshal (Nicholas Stoller) | 2008 |
NULL | 2008 |
Kodenavn Sort (Edgar Jimz) | 2010 |
NULL | 2007 |
NULL | 2007 |
NULL | 2007 |
Honey mooners (John Schultz) | 2005 |
NULL | 2012 |
Alias feltnavne
Ovenstående eksempel returnerede sammenkædningskoden som feltnavnet for vores resultater. Antag, at vi vil bruge et mere beskrivende feltnavn i vores resultatsæt. Vi ville bruge kolonnealiasnavnet for at opnå det. Det følgende er den grundlæggende syntaks for kolonnealiasnavnet
SELECT `column_name|value|expression` [AS] `alias_name`;
HER
- "VÆLG ` kolonnenavn|værdi|udtryk `" er den almindelige SELECT-sætning, som kan være et kolonnenavn, en værdi eller et udtryk.
- "[SOM]" er det valgfri nøgleord før aliasnavnet, der angiver udtrykket, vil værdien eller feltnavnet blive returneret som.
- "`alias_navn`" er aliasnavnet, som vi ønsker at returnere i vores resultatsæt som feltnavnet.
Ovenstående forespørgsel med et mere meningsfuldt kolonnenavn
SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;
Vi får følgende resultat
Concat | år_udgivet |
---|---|
Pirates of the Caribean 4 (Rob Marshall) | 2011 |
At glemme Sarah Marshal (Nicholas Stoller) | 2008 |
NULL | 2008 |
Kodenavn Sort (Edgar Jimz) | 2010 |
NULL | 2007 |
NULL | 2007 |
NULL | 2007 |
Honey mooners (John Schultz) | 2005 |
NULL | 2012 |
Får medlemsliste, der viser fødselsåret
Antag, at vi ønsker at få en liste over alle medlemmer, der viser medlemsnummer, fulde navne og fødselsår, kan vi bruge LEFT string-funktionen til at udtrække fødselsåret fra fødselsdatofeltet. Scriptet vist nedenfor hjælper os med at gøre det.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
HER
- "LEFT(`fødselsdato`,4)" og VENSTRE streng funktion accepterer fødselsdatoen som parameter og returnerer kun 4 tegn fra venstre.
- "SOM `fødselsår`" er kolonne alias navn som vil blive returneret i vores resultater. Bemærk AS nøgleord er valgfrit, kan du udelade det, og forespørgslen vil stadig fungere.
Udførelse af ovenstående forespørgsel i MySQL workbench mod myflixdb giver os resultaterne vist nedenfor.
medlemsnummer | fulde_navne | fødsels år |
---|---|---|
1 | Janet Jones | 1980 |
2 | Janet Smith Jones | 1980 |
3 | Robert Phil | 1989 |
4 | Gloria Williams | 1984 |
SQL ved hjælp af MySQL Workbench
Vi skal nu bruge MySQL workbench for at generere scriptet, der viser alle feltnavnene fra vores kategoritabel.
1. Højreklik på kategoritabellen. Klik på "Vælg rækker - Begræns 1000"
2. MySQL workbench vil automatisk oprette en SQL-forespørgsel og indsætte i editoren.
3. Forespørgselsresultater vises
Bemærk, at vi ikke selv skrev SELECT-sætningen. MySQL workbench genererede det til os.
Hvorfor bruge SELECT SQL-kommandoen, når vi har MySQL Arbejdsbord?
Nu tænker du måske, hvorfor lære SQL SELECT-kommandoen til at forespørge data fra databasen, når du blot kan bruge et værktøj som f.eks. MySQL workbench's for at få de samme resultater uden kendskab til SQL-sproget. Det er selvfølgelig muligt, men lære at bruge SELECT-kommandoen giver dig mere fleksibilitet og kontrol over din SQL SELECT-sætninger.
MySQL arbejdsbord falder i kategorien "Forespørgsel efter eksempel” QBE værktøjer. Det er beregnet til at hjælpe med at generere SQL-sætninger hurtigere for at øge brugerens produktivitet.
At lære SQL SELECT-kommandoen kan gøre det muligt for dig at oprette komplekse forespørgsler som ikke nemt kan genereres ved hjælp af Query by Example-værktøjer som f.eks MySQL arbejdsbord.
For at forbedre produktiviteten kan du generere koden vha MySQL arbejdsbord derefter tilpasse det til opfylde dine krav. Dette kan kun ske, hvis du forstår, hvordan SQL-sætningerne fungerer!
Resumé
- SQL SELECT nøgleordet bruges til at forespørge data fra databasen, og det er den mest brugte kommando.
- Den enkleste form har syntaksen "SELECT * FROM tableName;"
- Udtryk kan også bruges i select-sætningen. Eksempel "VÆLG mængde + pris FRA salg"
- SQL SELECT-kommandoen kan også have andre valgfrie parametre såsom WHERE, GROUP BY, HAVING, ORDER BY. De vil blive diskuteret senere.
- MySQL workbench kan hjælpe med at udvikle SQL-sætninger, eksekvere dem og producere outputresultatet i samme vindue.