MySQL SELECT-uttalande med exempel

Innehållsförteckning:

Anonim

Vad är SELECT-fråga i MySQL?

SELECT QUERY används för att hämta data från MySQL-databasen. Databaser lagrar data för senare hämtning. Syftet med MySQL Select är att återvända från databastabellerna, en eller flera rader som matchar ett visst kriterium. Välj fråga kan användas på skriptspråk som PHP, Ruby, eller så kan du utföra den via kommandotolken.

SQL SELECT-uttalande syntax

Det är det vanligaste SQL-kommandot och har följande allmänna syntax

SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName(s)] [HAVING condition] ORDER BY fieldName(s)
HÄR
  • SELECT är SQL-nyckelordet som låter databasen veta att du vill hämta data.
  • [DISTINCT | ALL] är valfria nyckelord som kan användas för att finjustera resultaten som returneras från SQL SELECT-satsen. Om ingenting anges antas ALL som standard.
  • {* | [fieldExpression [AS newName]} måste minst en del anges, "*" markerade alla fälten från det angivna tabellnamnet, fieldExpression utför vissa beräkningar på de angivna fälten som att lägga till siffror eller sätta ihop två strängfält till ett.
  • FRÅN tabellnamn är obligatoriskt och måste innehålla minst en tabell, flera tabeller måste separeras med kommatecken eller sammanfogas med nyckelordet JOIN.
  • VAR villkor är valfritt kan det användas för att ange kriterier i resultatuppsättningen som returneras från frågan.
  • GROUP BY används för att sätta ihop poster som har samma fältvärden.
  • HAVING- villkor används för att specificera kriterier när du arbetar med nyckelordet GROUP BY.
  • ORDER BY används för att specificera sorteringsordningen för resultatuppsättningen.

*

Stjärnsymbolen används för att markera alla kolumner i tabellen. Ett exempel på ett enkelt SELECT-uttalande ser ut som det som visas nedan.

SELECT * FROM `members`;

Ovanstående uttalande markerar alla fält från medlemstabellen. Semikolon är ett uttalande avslutas. Det är inte obligatoriskt men anses vara en bra praxis att avsluta dina uttalanden så.

Praktiska exempel

Klicka för att ladda ner myflix DB som används för praktiska exempel.

Du kan lära dig att importera .sql-filen till MySQL WorkBench

Exemplen utförs i följande två tabeller

Tabell 1: medlemmar tabell

medlemsnummer Fullständiga namn kön födelsedatum fysisk adress postadress kont_nummer e-post
1 Janet Jones Kvinna 21-07-1980 First Street tomt nr 4 Privat väska 0759 253 542 Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att kunna se det.
2 Janet Smith Jones Kvinna 23-06-1980 Melrose 123 NULL NULL Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att kunna se det.
3 Robert Phil Manlig 12-07-1989 3rd Street 34 NULL 12345 Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att kunna se det.
4 Gloria Williams Kvinna 14-02-1984 2nd Street 23 NULL NULL NULL

Tabell 2: filmer tabell

movie_id titel direktör year_released category_id
1 Pirates of the Caribean 4 Rob Marshall 2011 1
2 Glömmer Sarah Marshal Nicholas Stoller 2008 2
3 X-Men NULL 2008 NULL
4 Kodnamn Svart Edgar Jimz 2010 NULL
5 Pappas små flickor NULL 2007 8
6 Änglar och demoner NULL 2007 6
7 Davinci-koden NULL 2007 6
9 Honey mooners John Schultz 2005 8
16 67% skyldig NULL 2012 NULL

Få medlemslista

Låt oss anta att vi vill få en lista över alla registrerade biblioteksmedlemmar från vår databas, vi skulle använda skriptet nedan för att göra det.

SELECT * FROM `members`;

Att utföra ovanstående skript i MySQL-arbetsbänk ger följande resultat.

medlemsnummer Fullständiga namn kön födelsedatum fysisk adress postadress kont_nummer e-post
1 Janet Jones Kvinna 21-07-1980 First Street tomt nr 4 Privat väska 0759 253 542 Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att kunna se det.
2 Janet Smith Jones Kvinna 23-06-1980 Melrose 123 NULL NULL Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att kunna se det.
3 Robert Phil Manlig 12-07-1989 3rd Street 34 NULL 12345 Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att kunna se det.
4 Gloria Williams Kvinna 14-02-1984 2nd Street 23 NULL NULL NULL

Vår ovanstående fråga har returnerat alla rader och kolumner från medlemstabellen.

Låt oss säga att vi bara är intresserade av att bara få fullständiga namn, kön, fysisk adress och e-postfält. Följande manus skulle hjälpa oss att uppnå detta.

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

Att utföra ovanstående skript i MySQL-arbetsbänk ger följande resultat.

Fullständiga namn kön fysisk adress e-post
Janet Jones Kvinna First Street tomt nr 4 Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att kunna se det.
Janet Smith Jones Kvinna Melrose 123 Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att kunna se det.
Robert Phil Manlig 3rd Street 34 Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att kunna se det.
Gloria Williams Kvinna 2nd Street 23 NULL

Få filmer

Kom ihåg i vår diskussion ovan att vi nämner att uttryck har använts i SELECT-uttalanden. Låt oss säga att vi vill få en lista med film från vår databas. Vi vill ha filmtiteln och namnet på filmregissören i ett fält. Filmregissörens namn ska vara inom parentes. Vi vill också få året som filmen släpptes. Följande skript hjälper oss att göra det.

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

HÄR

  • Concat () MySQL-funktionen används för att sammanfoga kolumnvärdena.
  • Raden "Concat (` title`, '(', `director ',') ') får titeln, lägger till en inledande parentes följt av regissörens namn och lägger sedan till den avslutande parentesen.

Strängdelar separeras med kommatecken i funktionen Concat ().

Utförande av ovanstående skript i MySQL-arbetsbänk ger följande resultatuppsättning.

Concat ('titel', '(', 'regissör', ')') year_released
Pirates of the Caribean 4 (Rob Marshall) 2011
Glömmer Sarah Marshal (Nicholas Stoller) 2008
NULL 2008
Kodnamn svart (Edgar Jimz) 2010
NULL 2007
NULL 2007
NULL 2007
Honey mooners (John Schultz) 2005
NULL 2012

Alias ​​fältnamn

Ovanstående exempel returnerade sammankopplingskoden som fältnamn för våra resultat. Antag att vi vill använda ett mer beskrivande fältnamn i vår resultatuppsättning. Vi skulle använda kolumnaliasnamnet för att uppnå det. Följande är den grundläggande syntaxen för kolumnaliasnamnet

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

HÄR

  • "SELECT` column_name | value | expression `" är det vanliga SELECT-uttalandet som kan vara ett kolumnnamn, värde eller uttryck.
  • "[AS]" är det valfria nyckelordet innan aliasnamnet som anger uttrycket, värdet eller fältnamnet returneras som.
  • "alias_name" är aliasnamnet som vi vill returnera i vår resultatuppsättning som fältnamn.

Ovanstående fråga med ett mer meningsfullt kolumnnamn

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

Vi får följande resultat

Concat year_released
Pirates of the Caribean 4 (Rob Marshall) 2011
Glömmer Sarah Marshal (Nicholas Stoller) 2008
NULL 2008
Kodnamn svart (Edgar Jimz) 2010
NULL 2007
NULL 2007
NULL 2007
Honey mooners (John Schultz) 2005
NULL 2012

Få medlemmar som visar födelseåret

Antag att vi vill få en lista över alla medlemmar som visar medlemsnummer, fullständiga namn och födelseår, vi kan använda VÄNSTER strängfunktionen för att extrahera födelseåret från födelsedatumet. Manuset som visas nedan hjälper oss att göra det.

SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;

HÄR

  • "VÄNSTER (` date_of_birth`, 4)" den strängfunktion VÄNSTER accepterar födelsedatum som parameter och endast återvänder 4 tecken från vänster.
  • "AS` year_of_birth`" är kolumnaliasnamn som kommer att återlämnas i våra resultat. Observera att AS-nyckelordet är valfritt , du kan utesluta det och frågan kommer fortfarande att fungera.

Att utföra ovanstående fråga i MySQL-arbetsbänken mot myflixdb ger oss resultaten som visas nedan.

medlemsnummer Fullständiga namn födelseår
1 Janet Jones 1980
2 Janet Smith Jones 1980
3 Robert Phil 1989
4 Gloria Williams 1984

SQL med MySQL Workbench

Vi ska nu använda MySQL-arbetsbänken för att generera skriptet som visar alla fältnamn från vår kategoritabell.

1. Högerklicka på kategoritabellen. Klicka på "Välj rader - Limit 1000"

2. MySQL-arbetsbänken skapar automatiskt en SQL-fråga och klistrar in i redigeraren.

3. Frågeresultat visas

Lägg märke till att vi inte själv skrev SELECT-uttalandet. MySQL-arbetsbänken genererade den för oss.

Varför använda SELECT SQL-kommandot när vi har MySQL Workbench?

Nu kanske du funderar på varför lära dig SQL SELECT-kommandot för att fråga data från databasen när du helt enkelt kan använda ett verktyg som MySQL-arbetsbänk för att få samma resultat utan kunskap om SQL-språket. Naturligtvis är det möjligt, men att lära sig att använda kommandot SELECT ger dig mer flexibilitet och kontroll över dina SQL SELECT-uttalanden .

MySQL-arbetsbänk faller i kategorin " Query by Example " QBE-verktyg. Det är avsett att hjälpa till att generera SQL-uttalanden snabbare för att öka användarens produktivitet.

Att lära sig SQL SELECT-kommandot kan göra det möjligt för dig att skapa komplexa frågor som inte enkelt kan genereras med hjälp av Query av exempelverktyg som MySQL-arbetsbänk.

För att förbättra produktiviteten kan du generera koden med MySQL-arbetsbänk och sedan anpassa den för att uppfylla dina krav . Detta kan bara hända om du förstår hur SQL-uttalanden fungerar!

Sammanfattning

  • SQL SELECT-nyckelordet används för att fråga data från databasen och det är det vanligaste kommandot.
  • Den enklaste formen har syntaxen "SELECT * FROM tableName;"
  • Uttryck kan också användas i select-uttalandet. Exempel "VÄLJ kvantitet + pris FRÅN försäljning"
  • SQL SELECT-kommandot kan också ha andra valfria parametrar som WHERE, GROUP BY, HAVING, ORDER BY. De kommer att diskuteras senare.
  • MySQL-arbetsbänken kan hjälpa till att utveckla SQL-uttalanden, utföra dem och producera resultatet i samma fönster.