MySQL SELECT utasítás példákkal
Miben található a SELECT lekérdezés? MySQL?
A SELECT QUERY az adatok lekérésére szolgál MySQL adatbázis. Az adatbázisok tárolják az adatokat későbbi visszakeresés céljából. A célja MySQL Válassza ki, hogy az adatbázistáblákból egy vagy több olyan sort térjen vissza, amely megfelel egy adott feltételnek. A Select query használható olyan szkriptnyelveken, mint a PHP, Ruby, vagy végrehajthatja a parancssoron keresztül.
SQL SELECT utasítás szintaxisa
Ez a leggyakrabban használt SQL parancs, és a következő általános szintaxissal rendelkezik
SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName(s)] [HAVING condition] ORDER BY fieldName(s)
ITT
- SELECT az SQL kulcsszó, amely tudatja az adatbázissal, hogy adatokat szeretne lekérni.
- [KÜLÖNBÖZŐ | MINDEN] nem kötelező kulcsszavak, amelyek segítségével finomhangolhatók az SQL SELECT utasításból visszaadott eredmények. Ha nincs megadva semmi, akkor az ALL az alapértelmezett.
- {*| [fieldExpression [AS newName]} legalább egy részt meg kell adni, a „*” az összes mezőt kiválasztotta a megadott táblanévből, a fieldExpression néhány számítást végez a megadott mezőkön, például számokat ad hozzá, vagy két karakterlánc-mezőt egyesít egybe.
- FROM A tableName megadása kötelező, és tartalmaznia kell legalább egy táblát, több táblát vesszővel kell elválasztani, vagy a JOIN kulcsszóval kell összekapcsolni.
- AHOL feltétel nem kötelező, akkor a lekérdezésből visszaadott eredményhalmazban megadható a feltételek.
- CSOPORTOSÍT az azonos mezőértékekkel rendelkező rekordok összeállítására szolgál.
- HOGY feltétel a feltételek megadására szolgál, amikor a GROUP BY kulcsszó használatával dolgozik.
- RENDEZÉS az eredményhalmaz rendezési sorrendjének megadására szolgál.
*
A csillag szimbólum a táblázat összes oszlopának kiválasztására szolgál. Egy példa egy egyszerű SELECT utasításra az alábbiak szerint néz ki.
SELECT * FROM `members`;
A fenti utasítás az összes mezőt kiválasztja a tagok táblájából. A pontosvessző egy utasítás lezárása. Nem kötelező, de jó gyakorlatnak tekinthető, ha így fejezi be kijelentéseit.
Gyakorlati példák
Kattintson a letöltéshez a gyakorlati példákhoz használt myflix DB.
Megtanulhatja az .sql fájl importálását MySQL munkapad
A példákat a következő két táblázat alapján hajtjuk végre
1 táblázat: tagjai táblázat
Tagsági szám | teljes_nevek | nemek | születési dátum | valódi cím | postázási cím | kapcsolat_szám | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | nő | 21-07-1980 | 4. számú első utcai telek | Privát táska | +0759 253 542 XNUMX | janetjones@yagoo.cm |
2 | Janet Smith Jones | nő | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
3 | Robert Phil | férfi | 12-07-1989 | 3. utca 34 | NULL | 12345 | rm@tstreet.com |
4 | Gloria Williams | nő | 14-02-1984 | 2. utca 23 | NULL | NULL | NULL |
2 táblázat: filmek táblázat
film_id | cím | rendező | év_megjelent | kategória_azonosítója |
---|---|---|---|---|
1 | A Karib-tenger kalózai 4 | Rob Marshall | 2011 | 1 |
2 | Sarah Marshal elfelejtése | Nicholas stoller | 2008 | 2 |
3 | X-Men | NULL | 2008 | NULL |
4 | Kód Név Fekete | Edgar Jimz | 2010 | NULL |
5 | Apa kislányai | NULL | 2007 | 8 |
6 | angyalok és démonok | NULL | 2007 | 6 |
7 | Davinci kód | NULL | 2007 | 6 |
9 | Honey holdkórosok | Schultz János | 2005 | 8 |
16 | 67% bűnös | NULL | 2012 | NULL |
Taglista beszerzése
Tegyük fel, hogy az adatbázisunkból az összes regisztrált könyvtári tag listáját szeretnénk lekérni, ehhez az alább látható szkriptet használjuk.
SELECT * FROM `members`;
A fenti szkript végrehajtása MySQL munkaasztal a következő eredményeket produkálja.
Tagsági szám | teljes_nevek | nemek | születési dátum | valódi cím | postázási cím | kapcsolat_szám | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | nő | 21-07-1980 | 4. számú első utcai telek | Privát táska | +0759 253 542 XNUMX | janetjones@yagoo.cm |
2 | Janet Smith Jones | nő | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
3 | Robert Phil | férfi | 12-07-1989 | 3. utca 34 | NULL | 12345 | rm@tstreet.com |
4 | Gloria Williams | nő | 14-02-1984 | 2. utca 23 | NULL | NULL | NULL |
A fenti lekérdezésünk az összes sort és oszlopot visszaadta a tagok táblájából.
Tegyük fel, hogy csak az érdekel, hogy csak a teljes_nevek, nem, fizikai_cím és email mezőket kapjuk meg. A következő szkript segít nekünk ennek elérésében.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
A fenti szkript végrehajtása MySQL munkaasztal a következő eredményeket produkálja.
teljes_nevek | nemek | valódi cím | |
---|---|---|---|
Janet Jones | nő | 4. számú első utcai telek | janetjones@yagoo.cm |
Janet Smith Jones | nő | Melrose 123 | jj@fstreet.com |
Robert Phil | férfi | 3. utca 34 | rm@tstreet.com |
Gloria Williams | nő | 2. utca 23 | NULL |
Filmlista beszerzése
Ne feledje, hogy a fenti beszélgetésünkben megemlítjük a SELECT utasításokban használt kifejezéseket. Tegyük fel, hogy szeretnénk lekérni egy filmlistát az adatbázisunkból. Azt szeretnénk, hogy a film címe és a filmrendező neve egy mezőben legyen. A filmrendező nevét zárójelben kell feltüntetni. Szeretnénk megtudni a film megjelenésének évét is. A következő szkript segít nekünk ebben.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
ITT
- The Concat () MySQL függvényt használjuk, hogy az oszlopok értékeit összekapcsoljuk.
- A „Concat” sor (`title`, '(', `rendező`, ')') megkapja a címet, hozzáad egy kezdő zárójelet, majd a rendező nevét, majd hozzáadja a záró zárójelet.
A karakterlánc részei vesszővel vannak elválasztva a Concat () függvényben.
A fenti szkript végrehajtása MySQL munkapad a következő eredményhalmazt állítja elő.
Concat("cím", "(', "rendező", ")") | év_megjelent |
---|---|
A Karib-tenger kalózai 4 (Rob Marshall) | 2011 |
Sarah Marshal elfelejtése (Nicholas Stoller) | 2008 |
NULL | 2008 |
Kódnév Fekete (Edgar Jimz) | 2010 |
NULL | 2007 |
NULL | 2007 |
NULL | 2007 |
Honey mooners (John Schultz) | 2005 |
NULL | 2012 |
Alias mezőnevek
A fenti példa az Összefűzési kódot adta vissza az eredményeink mezőneveként. Tegyük fel, hogy leíróbb mezőnevet szeretnénk használni az eredménykészletünkben. Ennek eléréséhez az oszlop alias nevét használjuk. A következő az oszlop alias nevének alapvető szintaxisa
SELECT `column_name|value|expression` [AS] `alias_name`;
ITT
- "SELECT ` oszlop_neve|érték|kifejezés `" a szokásos SELECT utasítás, amely lehet oszlopnév, érték vagy kifejezés.
- "[MINT]" az opcionális kulcsszó az álnév előtt, amely a kifejezést jelöli, az érték vagy a mezőnév így kerül visszaadásra.
- "alias_name" az az álnév, amelyet mezőnévként vissza akarunk adni az eredménykészletünkben.
A fenti lekérdezés értelmesebb oszlopnévvel
SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;
A következő eredményt kapjuk
Concat | év_megjelent |
---|---|
A Karib-tenger kalózai 4 (Rob Marshall) | 2011 |
Sarah Marshal elfelejtése (Nicholas Stoller) | 2008 |
NULL | 2008 |
Kódnév Fekete (Edgar Jimz) | 2010 |
NULL | 2007 |
NULL | 2007 |
NULL | 2007 |
Honey mooners (John Schultz) | 2005 |
NULL | 2012 |
A tagok listája a születési év megjelenítésével
Tegyük fel, hogy szeretnénk kapni egy listát az összes tagról, amely tartalmazza a tagsági számot, a teljes nevet és a születési évet, akkor a BALRA sztring függvény segítségével kinyerhetjük a születési dátumot a születési dátum mezőből. Az alábbi forgatókönyv ebben segít nekünk.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
ITT
- "BAL(`születési_dátum`,4)" a LEFT string függvény elfogadja a születési dátumot paraméterként, és csak 4 karaktert ad vissza balról.
- "AS `születési_év" a oszlop alias neve ami vissza fog térni az eredményeinkben. Jegyezze meg a Az AS kulcsszó nem kötelező, kihagyhatja, és a lekérdezés továbbra is működni fog.
A fenti lekérdezés végrehajtása in MySQL munkapad a myflixdb ellen az alább látható eredményeket adja.
Tagsági szám | teljes_nevek | születési év |
---|---|---|
1 | Janet Jones | 1980 |
2 | Janet Smith Jones | 1980 |
3 | Robert Phil | 1989 |
4 | Gloria Williams | 1984 |
SQL használatával MySQL Workbench
Most használni fogjuk MySQL munkaterületet, hogy létrehozza azt a szkriptet, amely megjeleníti a kategóriatáblázatunk összes mezőnevét.
1. Kattintson jobb gombbal a Kategóriák táblázatra. Kattintson a „Sorok kiválasztása – 1000-es korlátozás” lehetőségre.
2. MySQL A workbench automatikusan létrehoz egy SQL-lekérdezést, és beilleszti a szerkesztőbe.
3. A lekérdezés eredményei megjelennek
Figyeljük meg, hogy a SELECT utasítást nem magunk írtuk. MySQL munkapad generálta nekünk.
Miért használjuk a SELECT SQL parancsot, ha van MySQL Munkapad?
Most talán azon gondolkodik, hogy miért tanulja meg az SQL SELECT parancsot adatok lekérdezéséhez az adatbázisból, ha egyszerűen használhat olyan eszközt, mint pl. MySQL munkaasztalon, hogy ugyanazokat az eredményeket kapja az SQL nyelv ismerete nélkül. Természetesen lehetséges, de megtanulják a SELECT parancs használatát többet ad rugalmasság és a ellenőrzés az ön felett SQL SELECT utasítások.
MySQL a munkapad a „Lekérdezés példa szerint” QBE eszközök. Célja, hogy segítse az SQL utasítások gyorsabb generálását a felhasználói termelékenység növelése érdekében.
Az SQL SELECT parancs megtanulása lehetővé teszi a létrehozást összetett lekérdezések amelyeket nem lehet könnyen előállítani a Query by Example segédprogramokkal, mint pl MySQL munkapad.
A termelékenység javítása érdekében segítségével generálja a kódot MySQL munkapad akkor testre hogy megfeleljen az Ön igényeinek. Ez csak akkor történhet meg, ha megérti az SQL utasítások működését!
Összegzésként
- Az SQL SELECT kulcsszó az adatbázisból való adatok lekérdezésére szolgál, és ez a leggyakrabban használt parancs.
- A legegyszerűbb formának a szintaxisa „SELECT * FROM tableName;”
- Kifejezések is használhatók a select utasításban. Példa „VÁLASZTOTT mennyiség + ár az értékesítésből”
- Az SQL SELECT parancsnak más opcionális paraméterei is lehetnek, például WHERE, GROUP BY, HAVING, ORDER BY. Később lesz szó róluk.
- MySQL A workbench segíthet az SQL utasítások fejlesztésében, végrehajtásában és a kimeneti eredmény ugyanabban az ablakban történő előállításában.