2.1 Bevezetés az SQL-be
Ha van egy adatbázisa (DB), és benne van egy táblázat néhány adattal, akkor a leggyakoribb feladat bizonyos adatok megtalálása ebben a táblázatban. Erre találták ki az SQL-t 40 évvel ezelőtt.
Az SQL a Structured Query Language rövidítése .
A legegyszerűbb SQL lekérdezés így néz ki:
SELECT column1, column2, … columnN FROM table
Tegyük fel, hogy van egy alkalmazotti táblázata az induló vállalkozás alkalmazottainak listájával:
id | név | Foglalkozása | fizetés | kor | csatlakozás dátuma |
---|---|---|---|---|---|
1 | Ivanov Iván | Programozó | 100 000 | 25 | 2012-06-30 |
2 | Petrov Petr | Programozó | 80 000 | 23 | 2013-08-12 |
3 | Ivanov Szergej | Vizsgáló | 40 000 | harminc | 2014-01-01 |
4 | Rabinovics Moisa | Rendező | 200 000 | 35 | 2015-05-12 |
5 | Kirienko Anasztázia | Irodavezető | 40 000 | 25 | 2015-10-10 |
6 | Vaska | macska | 1000 | 3 | 2018-01-01 |
Ha olyan lekérdezést szeretne írni, amely employee names
ezeket is megjeleníti salaries
, akkor meg kell írnia egy lekérdezést:
SELECT name, salary FROM employee
A lekérdezés eredményét kapod:
név | fizetés |
---|---|
Ivanov Iván | 100 000 |
Petrov Petr | 80 000 |
Ivanov Szergej | 40 000 |
Rabinovics Moisa | 200 000 |
Kirienko Anasztázia | 40 000 |
Vaska | 1000 |
Ha meg szeretné jeleníteni a táblázat összes oszlopát , akkor az összes oszlop nevének felsorolása helyett egyszerűen írjon egy csillagot. Példa:
SELECT * FROM employee
A lekérdezés eredményét kapod:
id | név | Foglalkozása | fizetés | kor | csatlakozás dátuma |
---|---|---|---|---|---|
1 | Ivanov Iván | Programozó | 100 000 | 25 | 2012-06-30 |
2 | Petrov Petr | Programozó | 80 000 | 23 | 2013-08-12 |
3 | Ivanov Szergej | Vizsgáló | 40 000 | harminc | 2014-01-01 |
4 | Rabinovics Moisa | Rendező | 200 000 | 35 | 2015-05-12 |
5 | Kirienko Anasztázia | Irodavezető | 40 000 | 25 | 2015-10-10 |
6 | Vaska | macska | 1000 | 3 | 2018-01-01 |
2.2 Az SQL lekérdezés speciális nézete
Az SQL nyelvet a lehető legfelhasználóbarátabbra tervezték.
Először is, a kérés szövegének kis- és nagybetűje nem számít . Írhatsz SELECT, Select vagy Select, és minden működni fog. Másodszor, a sortöréseket a rendszer semmilyen módon nem veszi figyelembe . A DBMS továbbra is egyetlen hosszú karaktersorozattá alakítja a lekérdezést, így tetszés szerint írhatja azt.
Ahogy valószínűleg már sejtette, a SELECT és FROM kulcsszavak nincsenek korlátozva. Különben nem lenne annyi szó az SQL-ről. Az SQL lekérdezés kiterjesztett nézete így néz ki:
SELECT columns
FROM table
WHERE condition
GROUP BY columns
HAVING columns
ORDER BY sorting
Egy kulcsszó segítségével WHERE
feltételt/szűrőt állíthatunk be a kiválasztott sorokhoz.
1. példa . Írjunk egy lekérdezést, amely kiválasztja a „Programozó” szakmával rendelkező alkalmazottakat:
SELECT * FROM employee WHERE occupation = 'Programmer'
És a következő lekérdezési eredményt kapjuk:
id | név | Foglalkozása | fizetés | kor | csatlakozás dátuma |
---|---|---|---|---|---|
1 | Ivanov Iván | Programozó | 100 000 | 25 | 2012-06-30 |
2 | Petrov Petr | Programozó | 80 000 | 23 | 2013-08-12 |
Mint látható, a lekérdezés végrehajtása eredményeként csak azok a sorok jelennek meg, ahol az alkalmazott szakmája „Programozó” néven szerepel.
A kulcsszavak GROUP BY
, ORDER BY
és HAVING
a következő előadásokon kitérünk rájuk. És ebben elemezünk még néhány példát a WHERE szóval.
2. példa . Most írjunk egy lekérdezést, amely megmutatja nekünk az összes alkalmazottat, akinek a fizetése meghaladja a 100 000-t. Így fog kinézni:
SELECT * FROM employee WHERE salary > 100000
A következő lekérdezési eredményt kapjuk:
id | név | Foglalkozása | fizetés | kor | csatlakozás dátuma |
---|---|---|---|---|---|
4 | Rabinovics Moisa | Rendező | 200 000 | 35 | 2015-05-12 |
3. példa . Most próbáljunk meg valami nehezebbet. Hogyan lehet megjeleníteni a 2015-ben felvett összes alkalmazottat? És így:
SELECT * FROM employee WHERE YEAR(join_date) = 2015
A következő lekérdezési eredményt kapjuk:
id | név | Foglalkozása | fizetés | kor | csatlakozás dátuma |
---|---|---|---|---|---|
4 | Rabinovics Moisa | Rendező | 200 000 | 35 | 2015-05-12 |
5 | Kirienko Anasztázia | Irodavezető | 40 000 | 25 | 2015-10-10 |
Ebben a lekérdezésben egy speciális függvényt használunk, YEAR()
amely lehetővé teszi, hogy egy dátumból megkapjuk az évet, majd összehasonlítsuk a dátum évét a 2015-ös számmal.
2.3 Megjegyzések az SQL-lekérdezésekben
És még egy fontos pont az SQL lekérdezések megjegyzései. A megjegyzések nagyon hasznosak. Először is írhat bele magyarázatokat és/vagy ötleteit. Másodszor, megjegyzések segítségével letilthatja a törött kódot. Vagy kommentálja a kód régi verzióját.
Az SQL, akárcsak a Java, egysoros és többsoros megjegyzésekkel rendelkezik. Ráadásul a többsoros megjegyzés ugyanúgy néz ki, mint a Java nyelven. Megjelenése:
/*
comment text
comment text
comment text
*/
Természetesen egy sorban is használható. Példa:
/*comment text*/
Létezik egy „a sor elejétől a sor végéig” típusú megjegyzés is, hasonlóan a Java „//”-hez. Csak az SQL-ben kell két mínusz karaktert és egy szóközt írni . Egy ilyen megjegyzés általános nézete:
-- comment text
Példa:
SELECT * FROM employee -- WHERE YEAR(join_date) = 2015
A fenti példában a lekérdezési feltételt kommentáltuk, így a MySQL csak a lekérdezést hajtja végre:
SELECT * FROM employee
2.4 SQL kiejtés
Ha külföldi ügyfelekkel kommunikál, vagy online interjút ad át egy amerikai cégnek, akkor megkérdezhetjük a folytatás nyelvével kapcsolatos tapasztalatairól . Őszintén megmondja, hogy nem dolgozott vele együtt, és azonnal eldobja az interjút.
És a helyzet az, hogy az SQL nyelvet eredetileg SEQUEL-nek hívták, amit folytatásként (ˈsēkwəl) ejtenek , így az USA-ban és más angol nyelvű forrásokban nagyon gyakran nem „escuel”, hanem „sequel” hallható. Az SQL megírásra kerül, és a folytatás beolvasásra kerül. Itt van egy ilyen történelmi paradoxon.
GO TO FULL VERSION