MySQL SELECT-uttalelse med eksempler

Innholdsfortegnelse:

Anonim

Hva er SELECT-spørring i MySQL?

SELECT QUERY brukes til å hente dataene fra MySQL-databasen. Databaser lagrer data for senere henting. Formålet med MySQL Select er å returnere fra databasetabellene, en eller flere rader som samsvarer med et gitt kriterium. Velg spørring kan brukes på 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
  • SELECT er SQL-nøkkelordet som lar databasen vite at du vil hente data.
  • [DISTINCT | ALL] 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 en del må spesifiseres, "*" valgte alle feltene fra det angitte tabellnavnet, fieldExpression utfører noen beregninger på de angitte feltene, for eksempel å legge til tall eller sette sammen to strengfelt i ett.
  • FRA tableName er obligatorisk og må inneholde minst én tabell, flere tabeller må skilles fra hverandre med komma eller sammenføyes ved hjelp av JOIN-nøkkelordet.
  • HVOR tilstanden er valgfri, kan den brukes til å spesifisere kriterier i resultatsettet som returneres fra spørringen.
  • GROUP BY brukes til å sette sammen poster som har samme feltverdier.
  • HAVING- tilstand brukes til å spesifisere kriterier når du arbeider med søkeordet GROUP BY.
  • ORDER BY brukes til å spesifisere sorteringsrekkefølgen for resultatsettet.

*

Stjernesymbolet brukes til å velge alle kolonnene i tabellen. Et eksempel på en enkel SELECT-setning ser ut som den som er vist nedenfor.

SELECT * FROM `members`;

Ovennevnte uttalelse velger alle feltene fra medlemstabellen. Semikolonet er en uttalelse som avsluttes. Det er ikke obligatorisk, men regnes som en god praksis for å avslutte uttalelsene dine slik.

Praktiske eksempler

Klikk for å laste ned myflix DB brukt for praktiske eksempler.

Du kan lære å importere .sql-filen til MySQL WorkBench

Eksemplene er utført på de følgende to tabellene

Tabell 1: Medlemmer tabellen

medlemsnummer fullnavn kjønn fødselsdato fysisk adresse postadresse kont.nr e-post
1 Janet Jones Hunn 21-07-1980 First Street Plot No 4 Privat veske 0759 253 542 Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere JavaScript for å kunne se den.
2 Janet Smith Jones Hunn 23-06-1980 Melrose 123 NULL NULL Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere JavaScript for å kunne se den.
3 Robert Phil Mann 12-07-1989 3. gate 34 NULL 12345 Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere JavaScript for å kunne se den.
4 Gloria Williams Hunn 14-02-1984 2nd Street 23 NULL NULL NULL

Tabell 2: filmer tabellen

movie_id tittel regissør år utgitt category_id
1 Pirates of the Caribean 4 Rob Marshall 2011 1
2 Glemmer Sarah Marshal Nicholas Stoller 2008 2
3 X menn NULL 2008 NULL
4 Kodenavn 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 mooners John Schultz 2005 8
16 67% skyldig NULL 2012 NULL

Få medlemsliste

La oss anta at vi ønsker å få en liste over alle registrerte biblioteksmedlemmer fra databasen vår, vi bruker skriptet vist nedenfor for å gjøre det.

SELECT * FROM `members`;

Å utføre skriptet ovenfor i MySQL arbeidsbenk gir følgende resultater.

medlemsnummer fullnavn kjønn fødselsdato fysisk adresse postadresse kont.nr e-post
1 Janet Jones Hunn 21-07-1980 First Street Plot No 4 Privat veske 0759 253 542 Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere JavaScript for å kunne se den.
2 Janet Smith Jones Hunn 23-06-1980 Melrose 123 NULL NULL Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere JavaScript for å kunne se den.
3 Robert Phil Mann 12-07-1989 3. gate 34 NULL 12345 Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere JavaScript for å kunne se den.
4 Gloria Williams Hunn 14-02-1984 2nd Street 23 NULL NULL NULL

Forespørselen vår har returnert alle radene og kolonnene fra medlemstabellen.

La oss si at vi bare er interessert i å få bare fullnavn, kjønn, fysisk adresse og e-postfelt. Følgende skript vil hjelpe oss med å oppnå dette.

SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;

Å utføre skriptet ovenfor i MySQL arbeidsbenk gir følgende resultater.

fullnavn kjønn fysisk adresse e-post
Janet Jones Hunn First Street Plot No 4 Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere JavaScript for å kunne se den.
Janet Smith Jones Hunn Melrose 123 Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere JavaScript for å kunne se den.
Robert Phil Mann 3. gate 34 Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere JavaScript for å kunne se den.
Gloria Williams Hunn 2nd Street 23 NULL

Få filmoppføring

Husk i diskusjonen ovenfor at vi nevner uttrykk som ble brukt i SELECT-setninger. La oss si at vi ønsker å få en liste over film fra databasen vår. Vi ønsker å ha filmtittelen og navnet på filmregissøren i ett felt. Navnet på filmregissøren skal være i parentes. Vi ønsker også å få året at filmen ble utgitt. Følgende skript hjelper oss med å gjøre det.

SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;

HER

  • Concat () MySQL-funksjonen brukes sammenkoble kolonneverdiene sammen.
  • Linjen "Concat (` title`, '(', `director ',') ') får tittelen, legger til en åpningsbrakett etterfulgt av navnet på regissøren og legger deretter til avslutningsbraketten.

Strengdeler skilles fra ved hjelp av komma i funksjonen Concat ().

Å utføre det ovennevnte skriptet i MySQL arbeidsbenk gir følgende resultatsett.

Concat (`` tittel '', '(', 'regissør', ')') år utgitt
Pirates of the Caribean 4 (Rob Marshall) 2011
Glemmer 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

Ovenstående eksempel returnerte sammenføyningskoden som feltnavnet for resultatene våre. Anta at vi vil bruke et mer beskrivende feltnavn i resultatsettet vårt. Vi bruker kolonnealiasnavnet for å oppnå det. Følgende er den grunnleggende syntaksen for kolonnealiasnavnet

SELECT `column_name|value|expression` [AS] `alias_name`;

HER

  • "SELECT` column_name | value | expression `" er den vanlige SELECT-setningen som kan være et kolonnenavn, verdi eller uttrykk.
  • "[AS]" er det valgfrie nøkkelordet før aliasnavnet som betegner uttrykket, verdien eller feltnavnet, returneres som.
  • "` alias_name` " er aliasnavnet som vi ønsker å returnere i vårt resultatsett som feltnavnet.

Ovenstående spørring 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
Glemmer 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å medlemmer som viser fødselsår

Anta at vi ønsker å få en liste over alle medlemmene som viser medlemsnummer, fulle navn og fødselsår, vi kan bruke VENSTRE strengfunksjon for å trekke ut fødselsåret fra fødselsdato-feltet. Skriptet vist nedenfor hjelper oss med å gjø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 streng funksjonen aksepterer fødselsdato som den parameter og returnerer bare 4 tegn fra venstre.
  • "AS` year_of_birth "" er kolonnealiasnavnet som returneres i resultatene våre. Legg merke til at AS-nøkkelordet er valgfritt , du kan utelate det og spørringen vil fortsatt fungere.

Å utføre spørringen ovenfor i MySQL arbeidsbenk mot myflixdb gir oss resultatene vist nedenfor.

medlemsnummer fullnavn 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 til å generere skriptet som vil vise alle feltnavnene fra kategoritabellen.

1. Høyreklikk på Kategoritabellen. Klikk på "Velg rader - Limit 1000"

2. MySQL arbeidsbenk vil automatisk opprette et SQL-spørsmål og lime inn i redigeringsprogrammet.

3. Spørringsresultater vises

Legg merke til at vi ikke skrev SELECT-setningen selv. MySQL arbeidsbenk genererte det for oss.

Hvorfor bruke SELECT SQL-kommandoen når vi har MySQL Workbench?

Nå tenker du kanskje hvorfor lære SQL SELECT-kommandoen å spørre om data fra databasen når du bare kan bruke et verktøy som MySQL arbeidsbenk for å få de samme resultatene uten kunnskap om SQL-språket. Selvfølgelig er det mulig, men å lære å bruke SELECT-kommandoen gir deg mer fleksibilitet og kontroll over SQL SELECT-setningene .

MySQL arbeidsbenk faller i kategorien " Query by Example " QBE-verktøy. Det er ment å bidra til å generere SQL-setninger raskere for å øke brukerens produktivitet.

Å lære SQL SELECT-kommandoen kan gjøre det mulig å opprette komplekse spørsmål som ikke lett kan genereres ved hjelp av Query av eksempelverktøy som MySQL arbeidsbenk.

For å forbedre produktiviteten kan du generere koden ved hjelp av MySQL arbeidsbenk og deretter tilpasse den til dine behov . Dette kan bare skje hvis du forstår hvordan SQL-setningene fungerer!

Sammendrag

  • SQL SELECT-nøkkelordet brukes til å spørre om data fra databasen, og det er den mest brukte kommandoen.
  • Den enkleste formen har syntaksen "SELECT * FROM tableName;"
  • Uttrykk kan også brukes i seleksjonsuttalelsen. Eksempel "VELG antall + 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 arbeidsbenk kan hjelpe deg med å utvikle SQL-setninger, utføre dem og produsere resultatet i samme vindu.