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!

  • LIKE
  • BETWEEN
  • IN
  • NULL
  • IS NULL

SQL Operátorok Táblázata

FeltételSQL operátor
Összehasonlítás=, <>, <, <=, >, >=
Sablonok megegyezéseLIKE
Intervallum szűréseBETWEEN
Lista szűréseIN
Érték létezésének ellenőrzéseIS NULL

Rendezési Irányok és Operátorok

Mit jelent az ASC és a DESC?

  • ASC → Növekvő sorrend
  • DESC → 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ás
  • LOWER() – Kisbetűssé alakítás
  • SUBSTRING() – Részszöveg lekérése
  • ROUND() – Kerekítés
  • CAST() / CONVERT() – Típusátalakítás
  • YEAR(), 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 JOIN
  • LEFT JOIN
  • RIGHT JOIN
  • FULL 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.

Entradas relacionadas: