SQL Data Query Language (DQL)¶
Az SQL Data Query Language (DQL) az SQL nyelv azon része, amely az adatok lekérdezésével foglalkozik. A DQL leggyakoribb utasítása a SELECT
.
SELECT Utasítás¶
A SELECT
utasítás lehetővé teszi adatok lekérdezését egy vagy több táblából.
Szintaxis¶
SELECT oszlopok_lista
FROM tablanév
[WHERE feltétel]
[GROUP BY oszlopok_lista]
[HAVING feltétel]
[ORDER BY oszlopok_lista [ASC | DESC]];
Példa¶
Ez a parancs lekérdezi a nev
és cim
oszlopokat a felhasznalok
táblából, ahol a varos oszlop értéke 'Budapest'
, és rendezés történik a nev
oszlop alapján.
Összetett Lekérdezések¶
A DQL lehetővé teszi összetett lekérdezések végrehajtását is, amelyek tartalmazhatnak több tábla összekapcsolását, al-lekérdezéseket, és funkciókat.
Példa Összekapcsolásra (JOIN)
SELECT f.nev, o.nev
FROM felhasznalok f
JOIN rendelesek o ON f.id = o.felhasznalo_id
WHERE f.varos = 'Budapest';
Ez a lekérdezés összekapcsolja a felhasznalok
és rendelesek
táblákat a felhasználók ID-ja alapján, és lekérdezi azoknak a felhasználóknak a nevét és rendeléseit, akik Budapest városban élnek.
JOIN Típusok¶
Az INNER JOIN
kulcsszó az SQL-ben arra használható, hogy két vagy több táblából összefüggő adatokat kérjünk le. Ez a művelet csak azokat a sorokat adja vissza, amelyeknél van egyezés a csatlakoztatott táblákban.
Szintaxis¶
SELECT oszlopok_lista
FROM tabla1
INNER JOIN tabla2
ON tabla1.kozos_oszlop = tabla2.kozos_oszlop
WHERE feltetel
GROUP BY oszlopok_lista
HAVING feltetel
ORDER BY oszlopok_lista ASC;
Példa¶
Tegyük fel, hogy van egy Dolgozok táblánk az alkalmazottak nevével és azonosítójával, valamint egy Rendelesek táblánk az alkalmazottak által leadott rendelésekkel. Az INNER JOIN segítségével összekapcsolhatjuk a két táblát az alkalmazottak azonosítója alapján, hogy megtekinthessük, melyik alkalmazott milyen rendelést adott le.
Dolgozok
tábla¶
ID | Nev |
---|---|
1 | Kovács Béla |
2 | Nagy Eszter |
3 | Szabó Péter |
Rendelesek
tábla¶
RendelesID | AlkalmazottID | Termek |
---|---|---|
100 | 1 | Telefon |
101 | 2 | Laptop |
102 | 1 | Tablet |
INNER JOIN használata¶
SELECT Dolgozok.Nev, Rendelesek.Termek
FROM Dolgozok
INNER JOIN Rendelesek ON Dolgozok.ID = Rendelesek.AlkalmazottID;
Eredmény¶
Nev | Termek |
---|---|
Kovács Béla | Telefon |
Nagy Eszter | Laptop |
Kovács Béla | Tablet |
Megjegyzések¶
- A DQL elsősorban az adatok olvasására koncentrál, nem módosítja azokat.
- A
SELECT
utasítás nagyon rugalmas, és lehetővé teszi szűrők, rendezések, csoportosítások és összetett feltételek alkalmazását. - Az összetett lekérdezések megértése és hatékony használata elengedhetetlen a különböző adatbázis-műveletek során.