MySQL SELECT utasítás példákkal

Tartalomjegyzék:

Anonim

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 email
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 email
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 email
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.