Hvad er SELECT-forespørgsel i MySQL?
SELECT QUERY bruges til at hente dataene fra MySQL-databasen. Databaser gemmer data til senere hentning. Formålet med MySQL Select er at vende tilbage fra databasetabellerne en eller flere rækker, der matcher et givet kriterium. Vælg forespørgsel kan bruges på scripting sprog som PHP, Ruby, eller du kan udføre det via kommandoprompten.
SQL SELECT-sætningssyntaks
Det er den hyppigst anvendte 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 SQL-nøgleordet, der lader databasen vide, at du vil hente data.
- [DISTINCT | ALL] er valgfri nøgleord, der kan bruges til at finjustere de resultater, der returneres fra SQL SELECT-sætningen. Hvis der ikke er angivet noget, antages ALL som standard.
- {* | [fieldExpression [AS newName]} mindst en del skal angives, "*" valgte alle felter fra det angivne tabelnavn, fieldExpression udfører nogle beregninger på de angivne felter, såsom at tilføje tal eller sammensætte to strengfelter i et.
- FRA tableName er obligatorisk og skal indeholde mindst en tabel, flere tabeller skal adskilles ved hjælp af kommaer eller sammenføjes ved hjælp af JOIN-nøgleordet.
- HVOR betingelsen er valgfri, kan den bruges til at specificere kriterier i resultatsættet, der returneres fra forespørgslen.
- GROUP BY bruges til at sammensætte poster, der har de samme feltværdier.
- HAVING- tilstand bruges til at specificere kriterier, når du arbejder med nøgleordet GROUP BY.
- ORDER BY bruges til at specificere sorteringsrækkefølgen for resultatsættet.
*
Stjernesymbolet bruges til at markere alle kolonnerne i tabellen. Et eksempel på en simpel SELECT-sætning ligner den, der er vist nedenfor.
SELECT * FROM `members`;
Ovenstående erklæring vælger alle felter fra medlemstabellen. Semikolon er en erklæring, der afsluttes. Det er ikke obligatorisk, men betragtes som en god praksis at afslutte dine udsagn sådan.
Praktiske eksempler
Klik for at downloade myflix DB, der bruges til praktiske eksempler.
Du kan lære at importere .sql-filen til MySQL WorkBench
Eksemplerne udføres i de følgende to tabeller
Tabel 1: Medlemmer bord
medlemsnummer | fulde navne | køn | fødselsdato | fysisk adresse | postadresse | kont.nr | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Kvinde | 21-07-1980 | First Street Plot No 4 | Privat taske | 0759 253 542 | Denne e-mail-adresse er beskyttet mod spambots. Du skal aktivere JavaScript for at kunne se den. |
2 | Janet Smith Jones | Kvinde | 23-06-1980 | Melrose 123 | NUL | NUL | Denne e-mail-adresse er beskyttet mod spambots. Du skal aktivere JavaScript for at kunne se den. |
3 | Robert Phil | Han | 12-07-1989 | 3rd Street 34 | NUL | 12345 | Denne e-mail-adresse er beskyttet mod spambots. Du skal aktivere JavaScript for at kunne se den. |
4 | Gloria Williams | Kvinde | 14-02-1984 | 2nd Street 23 | NUL | NUL | NUL |
Tabel 2: film bord
film_id | titel | direktør | year_released | category_id |
---|---|---|---|---|
1 | Pirates of the Caribean 4 | Rob Marshall | 2011 | 1 |
2 | Glemmer Sarah Marshal | Nicholas Stoller | 2008 | 2 |
3 | X men | NUL | 2008 | NUL |
4 | Kodenavn Sort | Edgar Jimz | 2010 | NUL |
5 | Daddy's Little Girls | NUL | 2007 | 8 |
6 | Engle og dæmoner | NUL | 2007 | 6 |
7 | Davinci-koden | NUL | 2007 | 6 |
9 | Honey Mooners | John Schultz | 2005 | 8 |
16 | 67% skyldig | NUL | 2012 | NUL |
Få medlemmer til notering
Lad os antage, at vi ønsker at få en liste over alle de registrerede biblioteksmedlemmer fra vores database, vi bruger 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 | kont.nr | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Kvinde | 21-07-1980 | First Street Plot No 4 | Privat taske | 0759 253 542 | Denne e-mail-adresse er beskyttet mod spambots. Du skal aktivere JavaScript for at kunne se den. |
2 | Janet Smith Jones | Kvinde | 23-06-1980 | Melrose 123 | NUL | NUL | Denne e-mail-adresse er beskyttet mod spambots. Du skal aktivere JavaScript for at kunne se den. |
3 | Robert Phil | Han | 12-07-1989 | 3rd Street 34 | NUL | 12345 | Denne e-mail-adresse er beskyttet mod spambots. Du skal aktivere JavaScript for at kunne se den. |
4 | Gloria Williams | Kvinde | 14-02-1984 | 2nd Street 23 | NUL | NUL | NUL |
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 fuld_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 No 4 | Denne e-mail-adresse er beskyttet mod spambots. Du skal aktivere JavaScript for at kunne se den. |
Janet Smith Jones | Kvinde | Melrose 123 | Denne e-mail-adresse er beskyttet mod spambots. Du skal aktivere JavaScript for at kunne se den. |
Robert Phil | Han | 3rd Street 34 | Denne e-mail-adresse er beskyttet mod spambots. Du skal aktivere JavaScript for at kunne se den. |
Gloria Williams | Kvinde | 2nd Street 23 | NUL |
Få filmoversigt
Husk i vores ovenstående diskussion, at vi nævner udtryk, der er brugt i SELECT-udsagn. Lad os sige, at vi vil hente en liste over film fra vores database. Vi ønsker at have filmtitlen og navnet på filmregissøren i et felt. Navnet på filmregissøren skal være i parentes. Vi ønsker også at få det år, hvor filmen blev udgivet. Det følgende script hjælper os med at gøre det.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
HER
- Concat () MySQL-funktionen bruges sammenføj kolonneværdierne sammen.
- Linjen "Concat (` title`, '(', `director ',') ') får titlen, tilføjer et åbningsbeslag 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 ('titel', '(', 'instruktør', ')') | year_released |
---|---|
Pirates of the Caribean 4 (Rob Marshall) | 2011 |
Glemmer Sarah Marshal (Nicholas Stoller) | 2008 |
NUL | 2008 |
Kode navn sort (Edgar Jimz) | 2010 |
NUL | 2007 |
NUL | 2007 |
NUL | 2007 |
Honey Mooners (John Schultz) | 2005 |
NUL | 2012 |
Alias feltnavne
Ovenstående eksempel returnerede sammenkædningskoden som feltnavn for vores resultater. Antag, at vi vil bruge et mere beskrivende feltnavn i vores resultatsæt. Vi bruger kolonnealiasnavnet til at opnå det. Følgende er den basale syntaks for kolonnealiasnavnet
SELECT `column_name|value|expression` [AS] `alias_name`;
HER
- "SELECT` column_name | value | expression `" er den almindelige SELECT-sætning, som kan være et kolonnenavn, værdi eller udtryk.
- "[AS]" er det valgfri nøgleord, før aliasnavnet, der angiver udtrykket, værdien eller feltnavnet, returneres som.
- "` alias_name` " er aliasnavnet, som vi vil 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 | year_released |
---|---|
Pirates of the Caribean 4 (Rob Marshall) | 2011 |
Glemmer Sarah Marshal (Nicholas Stoller) | 2008 |
NUL | 2008 |
Kode navn sort (Edgar Jimz) | 2010 |
NUL | 2007 |
NUL | 2007 |
NUL | 2007 |
Honey Mooners (John Schultz) | 2005 |
NUL | 2012 |
Får medlemmer, 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, vi kan bruge VENSTRE strengfunktion til at udtrække fødselsåret fra fødselsdatoen. Det viste script 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 (` date_of_birth`, 4)" den VENSTRE strengen funktionen accepterer fødselsdato som parameter og returnerer kun 4 tegn fra venstre.
- "SOM" år_af fødsel "" er kolonnealiasnavnet , der returneres i vores resultater. Bemærk, at AS-nøgleordet er valgfrit , du kan udelade det, og forespørgslen fungerer stadig.
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-arbejdsbænk til at generere scriptet, der viser alle feltnavne fra vores kategoritabel.
1. Højreklik på Kategoritabellen. Klik på "Vælg rækker - Begræns 1000"
2. MySQL workbench opretter automatisk en SQL-forespørgsel og indsætter i editoren.
3. Forespørgselsresultater vises
Bemærk, at vi ikke selv skrev SELECT-erklæringen. MySQL workbench genererede det for os.
Hvorfor bruge kommandoen SELECT SQL, når vi har MySQL Workbench?
Nu tænker du måske over, hvorfor lære SQL SELECT-kommandoen at spørge data fra databasen, når du simpelthen kan bruge et værktøj som MySQL-arbejdsbænke til at få de samme resultater uden kendskab til SQL-sproget. Det er naturligvis muligt, men at lære at bruge kommandoen SELECT giver dig mere fleksibilitet og kontrol over dine SQL SELECT-sætninger .
MySQL-arbejdsbænk falder i kategorien " Query by Example " 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, der ikke let kan genereres ved hjælp af Forespørgsel af eksempelværktøjer såsom MySQL-arbejdsbænk.
For at forbedre produktiviteten kan du generere koden ved hjælp af MySQL workbench og derefter tilpasse den til at 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 anvendte kommando.
- Den enkleste form har syntaksen "VÆLG * FRA tabelnavn;"
- Udtryk kan også bruges i den valgte sætning. Eksempel "VÆLG mængde + pris FRA salg"
- SQL SELECT-kommandoen kan også have andre valgfrie parametre som WHERE, GROUP BY, HAVING, ORDER BY. De vil blive drøftet senere.
- MySQL workbench kan hjælpe med at udvikle SQL-sætninger, udføre dem og producere outputresultatet i samme vindue.