SQL Lekérdezések és Parancsok Alapjai: Példák és Szintaxis
Enviado por Anónimo y clasificado en Otras materias
Escrito el en
húngaro con un tamaño de 4,49 KB
Az SQL Alapok és a SELECT Utasítás
Írd fel a SELECT általános szintaxisát!
SELECT oszlopok
FROM táblák
[JOIN kapcsolás]
[WHERE feltétel]
[GROUP BY csoportosító_oszlopok]
[HAVING feltétel]
[ORDER BY rendező_oszlopok];SQL Predikátumok és Operátorok
Sorold fel a predikátumokat!
LIKEBETWEENINNULLIS NULL
SQL Operátorok Táblázata
| Feltétel | SQL operátor |
|---|---|
| Összehasonlítás | =, <>, <, <=, >, >= |
| Sablonok megegyezése | LIKE |
| Intervallum szűrése | BETWEEN |
| Lista szűrése | IN |
| Érték létezésének ellenőrzése | IS NULL |
Rendezési Irányok és Operátorok
Mit jelent az ASC és a DESC?
ASC→ Növekvő sorrendDESC→ Csökkenő sorrend
Mire szolgál a + operátor?
Egyes rendszerekben szöveg összefűzésére is használható, but az alapjelentése: összeadás.
Adatátalakító Függvények
Melyik függvényeket használhatjuk az adatok átalakítására?
UPPER()– Nagybetűssé alakításLOWER()– Kisbetűssé alakításSUBSTRING()– Részszöveg lekéréseROUND()– KerekítésCAST() / CONVERT()– TípusátalakításYEAR(), MONTH(), DAY()– Dátumból részek kinyerése
Beágyazott Lekérdezések (Allekérdezések)
Mik a beágyazott lekérdezések?
Olyan lekérdezések, amelyek egy másik lekérdezésen belül szerepelnek. Más néven: allekérdezések (subquery).
Mi lehet az allekérdezés eredménye?
- Egyetlen érték
- Több sor, egy oszlop
- Egy teljes táblázatszerű eredmény
Táblák Kapcsolása (JOIN)
Sorold fel a JOIN-ok fajtáit!
INNER JOINLEFT JOINRIGHT JOINFULL JOIN
Milyen összefüggés van a táblák száma és a joinok száma között?
Ha N tábla van, akkor minimum N − 1 JOIN kell az összekapcsolásukhoz.
Példa az INNER JOIN Szintaxisára
SELECT *
FROM A
INNER JOIN B ON A.id = B.id;Gyakorlati SQL Lekérdezések és Példák
Mit keresnek meg a lekérdezések?
1. Példa
SELECT nev, szuldatum
FROM sofor
WHERE szuldatum < '1950-01-01'
ORDER BY nev;➡ Azokat a sofőröket listázza, akik 1950.01.01 előtt születtek, név szerint rendezve.
2. Példa
SELECT *
FROM utas
WHERE cim NOT LIKE 'Szeged%'
AND telefonszam LIKE '20%';➡ Azokat az utasokat adja vissza, akik nem Szegeden laknak és a telefonszámuk 20-szal kezdődik.
3. Példa
SELECT s.nev, SUM(f.km) AS osszkm
FROM Sofor s
JOIN Fuvar f ON f.rendszam = s.rendszam
WHERE s.nev = 'Kiss Tibor'
GROUP BY s.nev;➡ Megadja, hogy Kiss Tibor összesen hány kilométert vezetett.
4. Példa
SELECT f.rendszam, s.nev, u.nev, f.indul
FROM Fuvar f
JOIN Sofor s ON s.rendszam = f.rendszam
JOIN Utas u ON u.utaskod = f.utaskod
WHERE u.nev = 'Zalai Egon'
AND s.nev = 'Horvath Ilona';➡ Azokat a fuvarokat keresi, ahol az utas neve Zalai Egon és a sofőr neve Horváth Ilona, és kiírja:
- Rendszám
- Sofőr neve
- Utas neve
- Indulás ideje
5. Példa
SELECT DISTINCT rendszam
FROM fuvar
WHERE utaskod IN (
SELECT utaskod
FROM utas
WHERE utas.lakcim NOT LIKE 'Szeged%'
);➡ Azoknak a fuvaroknak a rendszámait adja vissza, ahol az utas nem szegedi lakos. (A DISTINCT miatt minden rendszám csak egyszer szerepel.)
6. Példa
SELECT t.Nev AS TermekNev, b.Nev AS BeszallitoNev
FROM Termekek t
INNER JOIN Beszallitok b
ON t.BeszallitoID = b.BeszallitoID
WHERE t.Kategoria = 'Tejtermék';➡ Kilistázza a tejtermék kategóriájú termékeket a hozzájuk tartozó beszállító nevével együtt.