MySQL VÄLJ uttalande med exempel
Vad är SELECT-frågan i MySQL?
SELECT QUERY används för att hämta data från MySQL databas. Databaser lagrar data för senare hämtning. Syftet med MySQL Välj är att returnera från databastabellerna, en eller flera rader som matchar ett givet kriterium. Välj fråga kan användas i skriptspråk som PHP, Ruby, eller så kan du köra den via kommandotolken.
SQL SELECT-satssyntax
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
- VÄLJA är SQL-nyckelordet som låter databasen veta att du vill hämta data.
- [DISTINKT | ALLT] är valfria nyckelord som kan användas för att finjustera resultaten som returneras från SQL SELECT-satsen. Om inget anges antas ALL som standard.
- {*| [fieldExpression [AS newName]} minst en del måste anges, "*" har markerat alla fält från det angivna tabellnamnet, fieldExpression utför vissa beräkningar på de angivna fälten som att lägga till tal eller sätta ihop två strängfält till ett.
- FRÅN tableName är obligatoriskt och måste innehålla minst en tabell, flera tabeller måste separeras med kommatecken eller sammanfogas med nyckelordet JOIN.
- VAR condition är valfritt, det kan användas för att ange kriterier i resultatuppsättningen som returneras från frågan.
- GRUPP AV används för att sätta ihop poster som har samma fältvärden.
- HAR condition används för att ange kriterier när man arbetar med nyckelordet GROUP BY.
- SORTERA EFTER används för att ange sorteringsordningen för resultatuppsättningen.
*
Stjärnsymbolen används för att välja alla kolumner i tabellen. Ett exempel på en enkel SELECT-sats ser ut som den som visas nedan.
SELECT * FROM `members`;
Ovanstående uttalande väljer alla fält från medlemstabellen. Semikolonet är ett uttalande terminate. 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 Arbetsbänk
Exemplen utförs på följande två tabeller
Tabell 1: medlemmar bord
medlemsnummer | Fullständiga namn | kön | födelsedatum | fysisk adress | postadress | kontakt_nummer | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Kvinna | 21-07-1980 | First Street Tomt nr 4 | Privat väska | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | Kvinna | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
3 | Robert Phil | man | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
4 | Gloria Williams | Kvinna | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
Tabell 2: filmer bord
movie_id | rubricerade | direktör | year_released | kategori_id |
---|---|---|---|---|
1 | Pirates of the Caribean 4 | Rob Marshall | 2011 | 1 |
2 | Att glömma Sarah Marshal | Nicholas Stoller | 2008 | 2 |
3 | X-Män | NULL | 2008 | NULL |
4 | Kod Namn 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 månare | John Schultz | 2005 | 8 |
16 | 67 % skyldig | NULL | 2012 | NULL |
Få medlemsförteckning
Låt oss anta att vi vill få en lista över alla registrerade biblioteksmedlemmar från vår databas, vi skulle använda skriptet som visas nedan för att göra det.
SELECT * FROM `members`;
Exekvera skriptet ovan i MySQL arbetsbänk ger följande resultat.
medlemsnummer | Fullständiga namn | kön | födelsedatum | fysisk adress | postadress | kontakt_nummer | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Kvinna | 21-07-1980 | First Street Tomt nr 4 | Privat väska | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | Kvinna | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
3 | Robert Phil | man | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
4 | Gloria Williams | Kvinna | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
Vår fråga ovan har returnerat alla rader och kolumner från medlemstabellen.
Låt oss säga att vi bara är intresserade av att bara få fälten fullständiga_namn, kön, fysisk_adress och e-post. Följande manus skulle hjälpa oss att uppnå detta.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
Exekvera skriptet ovan i MySQL arbetsbänk ger följande resultat.
Fullständiga namn | kön | fysisk adress | |
---|---|---|---|
Janet Jones | Kvinna | First Street Tomt nr 4 | janetjones@yagoo.cm |
Janet Smith Jones | Kvinna | Melrose 123 | jj@fstreet.com |
Robert Phil | man | 3rd Street 34 | rm@tstreet.com |
Gloria Williams | Kvinna | 2nd Street 23 | NULL |
Hämtar filmer
Kom ihåg i vår diskussion ovan att vi nämner uttryck som använts i SELECT-satser. Låt oss säga att vi vill få en lista över filmer från vår databas. Vi vill ha filmens titel och namnet på filmregissören i ett fält. Filmregissörens namn ska stå inom parentes. Vi vill också få det år då filmen släpptes. Följande skript hjälper oss att göra det.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
HÄR
- The Concat () MySQL funktionen används koppla samman kolumnvärdena.
- Raden “Concat (`titel`, ' (', `regissör`, ')') får titeln, lägger till en inledande parentes följt av namnet på regissören och lägger sedan till den avslutande parentesen.
Strängdelar separeras med kommatecken i Concat ()-funktionen.
Exekvera skriptet ovan i MySQL workbench ger följande resultatuppsättning.
Concat(`titel`, '(', `direktör`, ')') | year_released |
---|---|
Pirates of the Caribean 4 (Rob Marshall) | 2011 |
Att glömma 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 sammanlänkningskoden som fältnamnet för våra resultat. Anta 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
- "VÄLJ ` kolumnnamn|värde|uttryck `" är den vanliga SELECT-satsen som kan vara ett kolumnnamn, värde eller uttryck.
- "[SOM]" är det valfria nyckelordet före aliasnamnet som anger uttrycket, värdet eller fältnamnet kommer att 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 |
Att glömma 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å medlemslista som visar födelseår
Anta att vi vill få en lista över alla medlemmar som visar medlemsnummer, fullständiga namn och födelseår, så kan vi använda LEFT string-funktionen för att extrahera födelseåret från födelsedatumfältet. Skriptet 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
- "LEFT(`födelsedatum`,4)" d VÄNSTER strängfunktion accepterar födelsedatumet som parameter och returnerar endast 4 tecken från vänster.
- "SOM `födelseår`" är kolumn alias namn som kommer att returneras i våra resultat. Notera AS-nyckelord är valfritt, kan du utelämna det och frågan kommer fortfarande att fungera.
Utför ovanstående fråga i MySQL arbetsbänk 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 använder MySQL Arbetsbänk
Vi ska nu använda MySQL arbetsbänk 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 - Begränsa 1000"
2. MySQL workbench kommer automatiskt att skapa en SQL-fråga och klistra in i editorn.
3. Frågeresultat kommer att visas
Lägg märke till att vi inte skrev SELECT-satsen själva. MySQL arbetsbänken genererade det åt oss.
Varför använda kommandot SELECT SQL när vi har MySQL Arbetsbänk?
Nu kanske du tänker 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 t.ex. MySQL workbench's för att få samma resultat utan kunskap om SQL-språket. Visst är det möjligt, men lära sig hur man använder kommandot SELECT ger dig mer flexibilitet och kontroll över din SQL SELECT-satser.
MySQL arbetsbänk faller i kategorin "Fråga efter exempel” QBE-verktyg. Det är avsett att hjälpa till att generera SQL-satser snabbare för att öka användarens produktivitet.
Genom att lära dig SQL SELECT-kommandot kan du skapa komplexa frågor som inte enkelt kan genereras med hjälp av Query by Example-verktyg som t.ex MySQL arbetsbänk.
För att förbättra produktiviteten kan du generera koden med hjälp av MySQL arbetsbänk sedan skräddarsy den till uppfylla dina krav. Detta kan bara hända om du förstår hur SQL-satserna fungerar!
Sammanfattning
- Nyckelordet SQL SELECT används för att söka efter 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-satsen. 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 workbench kan hjälpa till att utveckla SQL-satser, exekvera dem och producera resultatet i samma fönster.