Mi a SELECT lekérdezés a MySQL-ben?
A SELECT QUERY az adatok lekérésére szolgál a MySQL adatbázisból. Az adatbázisok adatokat tárolnak a későbbi visszakereséshez. A MySQL Select célja, hogy az adatbázis táblákból visszatérjen egy vagy több, egy adott feltételnek megfelelő sor. A Select lekérdezés használható olyan szkript nyelvben, mint a PHP, a Ruby, vagy végrehajtható 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
- A SELECT az SQL kulcsszó, amely tudatja az adatbázissal, hogy adatokat szeretne lekérni.
- [DISTINCT | ALL] opcionális kulcsszavak, amelyekkel finomíthatja az SQL SELECT utasításból visszaküldött eredményeket. Ha semmi nincs megadva, akkor az ALL az alapértelmezett.
- {* | [fieldExpression [AS newName]} legalább egy részt meg kell adni, a "*" kiválasztotta az összes mezőt 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 állít össze egybe.
- A FROM tableName kötelező, és tartalmaznia kell legalább egy táblázatot, több táblát vesszővel kell elválasztani, vagy a JOIN kulcsszóval kell összekapcsolni.
- A WHERE feltétel nem kötelező, felhasználható a lekérdezésből visszaküldött eredménykészlet kritériumainak megadására.
- A GROUP BY segítségével azonos mezőértékű rekordokat állíthatunk össze.
- A HAVING feltétel a feltételek megadására szolgál a GROUP BY kulcsszó használatakor.
- Az ORDER BY segítségével megadható az eredményhalmaz rendezési sorrendje.
*
A Csillag szimbólum a táblázat összes oszlopának kiválasztására szolgál. Egy egyszerű SELECT utasítás példája úgy néz ki, mint az alábbiakban.
SELECT * FROM `members`;
A fenti utasítás kijelöli az összes mezőt a tagok táblázatából. A pontosvessző egy végződés. Nem kötelező, de bevált gyakorlatnak tekinthető az ilyen állítások befejezése.
Gyakorlati példák
Kattintson a gyakorlati példákhoz használt myflix DB letöltéséhez .
Megtanulhatja a .sql fájl importálását a MySQL WorkBench-be
A példákat az alábbi két táblázatban mutatjuk be
1. táblázat: tagok táblázat
Tagsági szám | teljes_nevek | nem | születési dátum | valódi cím | postázási cím | folytatás_ szám | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Női | 1980-07-21 | Első utca 4. sz | Privát táska | 0759 253 542 | Ezt az e-mail címet a spamrobotok ellen védjük. Engedélyezze a Javascript használatát a megtekintéshez. |
2 | Janet Smith Jones | Női | 1980-06-23 | Melrose 123 | NULLA | NULLA | Ezt az e-mail címet a spamrobotok ellen védjük. Engedélyezze a Javascript használatát a megtekintéshez. |
3 | Robert Phil | Férfi | 1989-07-12 | 3. utca 34 | NULLA | 12345 | Ezt az e-mail címet a spamrobotok ellen védjük. Engedélyezze a Javascript használatát a megtekintéshez. |
4 | Gloria Williams | Női | 1984-02-14 | 2. utca 23 | NULLA | NULLA | NULLA |
2. táblázat: filmek táblázat
film_azonosító | cím | rendező | year_released | category_id |
---|---|---|---|---|
1 | A Karib-tenger kalózai 4 | Rob Marshall | 2011 | 1 |
2 | Megfeledkezve Sarah marsallról | Nicholas Stoller | 2008 | 2 |
3 | X-Men | NULLA | 2008 | NULLA |
4 | Kódnév Fekete | Edgar Jimz | 2010 | NULLA |
5. | Apa kislányai | NULLA | 2007 | 8. |
6. | angyalok és démonok | NULLA | 2007 | 6. |
7 | Davinci-kód | NULLA | 2007 | 6. |
9. | Mézes holdak | John Schultz | 2005 | 8. |
16. | 67% bűnös | NULLA | 2012 | NULLA |
A tagok listázása
Tegyük fel, hogy az összes regisztrált könyvtár tagot szeretnénk megszerezni az adatbázisunkból, ehhez az alább látható szkriptet használnánk.
SELECT * FROM `members`;
A fenti parancsfájl futtatása a MySQL munkaasztalon a következő eredményeket eredményezi.
Tagsági szám | teljes_nevek | nem | születési dátum | valódi cím | postázási cím | folytatás_ szám | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Női | 1980-07-21 | Első utca 4. sz | Privát táska | 0759 253 542 | Ezt az e-mail címet a spamrobotok ellen védjük. Engedélyezze a Javascript használatát a megtekintéshez. |
2 | Janet Smith Jones | Női | 1980-06-23 | Melrose 123 | NULLA | NULLA | Ezt az e-mail címet a spamrobotok ellen védjük. Engedélyezze a Javascript használatát a megtekintéshez. |
3 | Robert Phil | Férfi | 1989-07-12 | 3. utca 34 | NULLA | 12345 | Ezt az e-mail címet a spamrobotok ellen védjük. Engedélyezze a Javascript használatát a megtekintéshez. |
4 | Gloria Williams | Női | 1984-02-14 | 2. utca 23 | NULLA | NULLA | NULLA |
A fenti lekérdezésünk visszaadta az összes sort és oszlopot a tagok táblázatából.
Tegyük fel, hogy csak a teljes_nevek, nem, fizikai_cím és e-mail mezők megszerzése érdekel minket. A következő szkript segít nekünk ebben.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
A fenti parancsfájl futtatása a MySQL munkaasztalon a következő eredményeket eredményezi.
teljes_nevek | nem | valódi cím | |
---|---|---|---|
Janet Jones | Női | Első utca 4. sz | Ezt az e-mail címet a spamrobotok ellen védjük. Engedélyezze a Javascript használatát a megtekintéshez. |
Janet Smith Jones | Női | Melrose 123 | Ezt az e-mail címet a spamrobotok ellen védjük. Engedélyezze a Javascript használatát a megtekintéshez. |
Robert Phil | Férfi | 3. utca 34 | Ezt az e-mail címet a spamrobotok ellen védjük. Engedélyezze a Javascript használatát a megtekintéshez. |
Gloria Williams | Női | 2. utca 23 | NULLA |
A filmek felsorolása
Ne feledje a fenti beszélgetés során, hogy megemlítjük a SELECT utasításokban használt kifejezéseket. Tegyük fel, hogy szeretnénk egy listát a filmekről az adatbázisunkból. Azt szeretnénk, hogy a film címe és a film rendezője egy mezőben legyen. A filmrendező nevét zárójelben kell feltüntetni. Szeretnénk elérni azt az évet is, amikor a film megjelent. A következő szkript segít ebben.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
ITT
- A Concat () MySQL függvény az oszlopok értékeinek összekapcsolására szolgál.
- A "Concat (" cím "," ("," rendező ",") ") sor megkapja a címet, hozzáad egy nyitó zárójelet, majd az igazgató nevét, majd hozzáadja a záró zárójelet.
A karakterláncokat vesszővel választjuk el a Concat () függvényben.
A fenti parancsfájl végrehajtása a MySQL munkapadban a következő eredménykészletet eredményezi.
Concat ("cím", "(", "rendező", ")") | year_released |
---|---|
A Karib-tenger kalózai 4 (Rob Marshall) | 2011 |
Sarah marsall (Nicholas Stoller) elfelejtése | 2008 |
NULLA | 2008 |
Fekete kódnév (Edgar Jimz) | 2010 |
NULLA | 2007 |
NULLA | 2007 |
NULLA | 2007 |
Honey mooners (John Schultz) | 2005 |
NULLA | 2012 |
Álnevek mezőnevei
A fenti példa az összefűzési kódot adta vissza eredményeink mezőneveként. Tegyük fel, hogy leíróbb mezőnevet akarunk használni az eredménykészletünkben. Ennek eléréséhez az oszlop alias nevet használnánk. Az alábbiakban bemutatjuk az oszlop álnevének alapvető szintaxisát
SELECT `column_name|value|expression` [AS] `alias_name`;
ITT
- A "SELECT" oszlopnév | érték | kifejezés "" a szokásos SELECT utasítás, amely lehet oszlopnév, érték vagy kifejezés.
- Az "[AS]" az opcionális kulcsszó, mielőtt a kifejezést, értéket vagy mezőnevet jelző álnév visszaadódik.
- Az "alias_név" az álnév, amelyet vissza akarunk adni a mezőnévként beállított 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 | year_released |
---|---|
A Karib-tenger kalózai 4 (Rob Marshall) | 2011 |
Sarah marsall (Nicholas Stoller) elfelejtése | 2008 |
NULLA | 2008 |
Fekete kódnév (Edgar Jimz) | 2010 |
NULLA | 2007 |
NULLA | 2007 |
NULLA | 2007 |
Honey mooners (John Schultz) | 2005 |
NULLA | 2012 |
A tagok felsorolása a születési év feltüntetésével
Tegyük fel, hogy meg akarjuk szerezni az összes tag listáját, amelyen feltüntetik a tagság számát, teljes nevét és születési évét. A BAL karakterlánc függvény segítségével kivonhatjuk a születési évet a születési dátum mezőből. Az alább látható szkript segít ebben.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
ITT
- "LEFT (` dátum_születés_napja`, 4) '' a BAL karakterlánc függvény a születési dátumot fogadja el paraméterként, és csak 4 karaktert ad vissza balról.
- "AS" year_of_birth "" az oszlop alias neve , amely visszatér az eredményeinkbe. Vegye figyelembe, hogy az AS kulcsszó nem kötelező , ezt elhagyhatja, és a lekérdezés továbbra is működni fog.
A fenti lekérdezés végrehajtása a MySQL munkaasztalon a myflixdb-vel szemben az alábbiakban bemutatott eredményeket nyújtja nekünk.
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 a MySQL Workbench segítségével
Most a MySQL munkapad segítségével fogjuk létrehozni azt a szkriptet, amely a kategóriák táblázatunk összes mezőnevét megjeleníti.
1. Kattintson a jobb gombbal a Kategóriák táblára. Kattintson a "Sorok kiválasztása - 1000 korlát" gombra.
2. A MySQL munkaasztal automatikusan létrehoz egy SQL lekérdezést és beilleszt a szerkesztőbe.
3. A lekérdezés eredményei megjelennek
Figyeljük meg, hogy nem mi magunk írtuk a SELECT utasítást. A MySQL munkaasztal generálta nekünk.
Miért érdemes használni a SELECT SQL parancsot, ha MySQL Workbench van?
Most arra gondolhat, hogy miért kéne megtanulnia az SQL SELECT parancsot az adatbázis lekérdezésére, amikor egyszerűen használhat egy olyan eszközt, mint a MySQL munkaasztal, hogy ugyanazokat az eredményeket érje el az SQL nyelv ismerete nélkül. Természetesen ez lehetséges, de a SELECT parancs használatának elsajátítása nagyobb rugalmasságot és kontrollt biztosít az SQL SELECT utasítások felett .
A MySQL munkaasztal a " Lekérdezés példával " QBE eszközök kategóriába tartozik . Célja, hogy gyorsabban hozza létre az SQL utasításokat a felhasználói termelékenység növelése érdekében.
Az SQL SELECT parancs megtanulása lehetővé teszi olyan összetett lekérdezések létrehozását , amelyeket nem lehet könnyen létrehozni a Query by Example segédprogramokkal, például a MySQL munkapaddal.
A termelékenység javítása érdekében a kódot a MySQL munkaasztal segítségével állíthatja elő, majd testre szabhatja az igényeinek megfelelően . Ez csak akkor történhet meg, ha megérti az SQL utasítások működését!
Összegzés
- Az SQL SELECT kulcsszó az adatbázisból származó adatok lekérdezésére szolgál, és ez a leggyakrabban használt parancs.
- A legegyszerűbb űrlap szintaxisa "SELECT * FROM tableName;"
- Kifejezések felhasználhatók a select utasításban is. Példa "KIVÁLASZTÁS mennyiség + ár FROM értékesítésből"
- Az SQL SELECT parancsnak további opcionális paraméterei is lehetnek, például WHERE, GROUP BY, HAVING, ORDER BY. Később megbeszéljük őket.
- A MySQL munkapad segíthet az SQL utasítások fejlesztésében, végrehajtásában és a kimeneti eredmény létrehozásában ugyanabban az ablakban.