Toggle menu
Toggle preferences menu
Toggle personal menu
Neprihlásený/á
Your IP address will be publicly visible if you make any edits.
Verzia z 18:13, 11. január 2025, ktorú vytvoril SKevo (diskusia | príspevky) (oprava preklepu)
(rozdiel) ← Staršia verzia | Aktuálna úprava (rozdiel) | Novšia verzia → (rozdiel)

Hlavné SQL príkazy, filtrovanie dát a agregačné dotazy.


Hlavné SQL príkazy

Manipulácia s údajmi

INSERT, UPDATE, DELETE, SELECT

Definovanie štruktúry

CREATE, ALTER, DROP, VIEW

Filtrovanie dát

WHERE, GROUP BY, HAVING

Poddotazy

Poddotaz je SQL dotaz vložený do iného dotazu. Slúži na získanie medzivýsledkov, ktoré sa následne použijú v hlavnom dotaze. Poddotazy môžu byť použité v rôznych častiach SQL príkazu, ako sú klauzuly SELECT, WHERE, alebo FROM.

Rozlišujeme niekoľko typov poddotazov:

  1. Jednoduchý (single-row) poddotaz:
    • Vráti presne jeden riadok, používa sa s operátormi porovnania (=, <, >) ;
      SELECT meno FROM zamestnanci
      WHERE plat > (
        SELECT AVG(plat) FROM zamestnanci
      );
      -- mená zamestnancov, ktorých plat je vyšší ako priemerný plat všetkých zamestnancov
      
  2. Viacriadkový (multi-row) poddotaz:
    • Vráti viacero riadkov, používa sa s klauzulami IN, ANY, ALL;
      SELECT meno FROM zamestnanci
      WHERE oddelenie_id IN (
        SELECT oddelenie_id FROM oddelenia
        WHERE mesto = 'Bratislava'
      );
      -- mená zamestnancov, ktorí pracujú v oddeleniach so sídlom v Bratislave
      
  3. Viacstĺpcový (multi-column) poddotaz:
    • Vráti viacero riadkov a stĺpcov (atribútov), používa sa najmä v klauzule EXISTS alebo pri vkladaní dát.
      SELECT * FROM produkty
      WHERE
        (cena, pocet_v_sklade) IN (
          SELECT cena, pocet_v_sklade FROM dodavky
          WHERE dodavatel_id = 3
        );
      -- produkty, ktoré majú rovnakú cenu a množstvo ako dodávky od dodávateľa č. 3
      
  4. Odvodená tabuľka (poddotaz v klauzule FROM):
    • Výsledok poddotazu sa správa ako dočasná tabuľka;
      SELECT oddelenie_id, AVG(plat) FROM (
        SELECT * FROM zamestnanci
        WHERE vek > 30
      ) AS podtabulka
      GROUP BY oddelenie_id;
      -- priemerné platy v oddeleniach, ale iba pre zamestnancov starších ako 30 rokov
      

Agregačné funkcie

Agregačné funkcie slúžia na zhrnutie (agregáciu) hodnôt v skupinách alebo nad celou tabuľkou.

Patria sem napríklad funkcie AVG(), MIN(), MAX(), COUNT() a SUM().