adatbázis
Fontosabb utasítások – SQL
Adatbázis – SQL
Fontosabb utasítások
Utasítások:
SELECT [DISTINCT / ALL]
– Mit kérdezel le?
DISTINCT
: Csak egyedi értékeket szeretnél az eredményben.ALL
: Minden értéket megjelenít, még az ismétlődőket is (ez az alapértelmezett).
Példa: SELECT DISTINCT nev FROM dolgozo; – az összes egyedi nevet adja vissza a dolgozo táblából
SELECT ALL város FROM dolgozó; – minden várost visszaad, az ismétlésekkel együtt
{* / [mezőlista [AS alias]]} – melyik mezőket kérdezed le?
*
(csillag): Minden mezőt lekér a táblából.
Példa:SELECT * FROM dolgozó;
→ A dolgozó tábla összes adata megjelenik.- Mezőlista: Csak bizonyos mezőket (oszlopokat) kérünk le.
Példa:SELECT nev, fizetes FROM dolgozó;
→ Csak a nevek és fizetések jelennek meg. - AS alias: A mezők vagy táblák nevéhez egyedi megjelenítési nevet (alias) rendelhetünk.
Példa:SELECT nev AS dolgozo_neve FROM dolgozó;
→ Anev
mező helyettdolgozo_neve
lesz látható.
[WHERE feltétel]
– Milyen feltétel alapján szűrünk?
- Szűri az adatokat, csak a feltételnek megfelelő rekordokat adja vissza.
Példa: SELECT nev, fizetes FROM dolgozo WHERE fizetes > 300000;
Ez csak azokat a dolgozókat mutatja, akiknek a fizetése 300.000 felett van.
FROM tábla [[AS] alias]
– Honnan jönnek az adatok?
-
FROM
: Meghatározza, melyik táblából kérdezed le az adatokat.[AS alias]
: A táblának adhatunk rövidebb nevet a lekérdezéshez.- Példa: SELECT d.nev FROM dolgozo AS d;
Itt adolgozo
tábla rövid neved
, így rövidebb lesz az utasítás.
[GROUP BY mezőlista]
– Hogyan csoportosítasz?
- Az eredményeket megadott oszlopok szerint csoportosítja, pl. osztályok szerint.
Példa: SELECT osztaly_id, AVG(fizetes) AS ÁtlagFizetés FROM dolgozo GROUP BY osztaly_id;
Ez az osztályok átlagfizetését adja meg.
[HAVING feltétel]
– Milyen feltételeket alkalmazol a csoportokra?
- A csoportosított eredmények szűrésére használod (a
WHERE
a rekordokra vonatkozik, aHAVING
pedig a csoportokra).
Példa: SELECT osztaly_id, AVG(fizetes) AS ÁtlagFizetés FROM dolgozo GROUP BY osztaly_id HAVING ÁtlagFizetés > 400000;
Csak azok az osztályok jelennek meg, ahol az átlagfizetés meghaladja a 400.000-et.
[ORDER BY mezőlista]
– Hogyan rendezed az eredményt?
- Rendezheted az adatokat egy vagy több oszlop szerint, növekvő (
ASC
) vagy csökkenő (DESC
) sorrendben.
Példa: SELECT nev, fizetes FROM dolgozo ORDER BY fizetes DESC;
Ez a dolgozókat a fizetésük szerint csökkenő sorrendben rendezi.
Összefoglalva:
SELECT DISTINCT nev, fizetes
FROM dolgozo
WHERE fizetes > 300000
GROUP BY osztaly_id
HAVING AVG(fizetes) > 400000
ORDER BY fizetes DESC;
Ez az utasítás megadja a dolgozók neveit és fizetéseit, szűri a 300.000 feletti fizetéseket, csoportosít osztály szerint, csak a 400.000 feletti átlaggal rendelkező osztályokat jeleníti meg, és csökkenő sorrendben rendezi a fizetéseket.