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ó; → A nev mező helyett dolgozo_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 a dolgozo tábla rövid neve d, í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, a HAVING 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.