More actions
Vytvorená stránka „Hlavné SQL príkazy, filtrovanie dát a agregačné dotazy. {{Pojmová mapa}} == Hlavné SQL príkazy == === Manipulácia s údajmi === <code>INSERT</code>, <code>UPDATE</code>, <code>DELETE</code>, <code>SELECT</code> === Definovanie štruktúry === <code>CREATE</code>, <code>ALTER</code>, <code>DROP</code>, <code>VIEW</code> == Filtrovanie dát == <code>WHERE</code>, <code>GROUP BY</code>, <code>HAVING</code> == Poddotazy == Poddotaz je SQL dotaz vložený…“ |
d oprava preklepu |
||
(Jedna medziľahlá úprava od rovnakého používateľa nie je zobrazená.) | |||
Riadok 20: | Riadok 20: | ||
# '''Jednoduchý (single-row) poddotaz:''' | # '''Jednoduchý (single-row) poddotaz:''' | ||
#* Vráti | #* Vráti presne jeden riadok, používa sa s operátormi porovnania (<code>=</code>, <code><</code>, <code>></code>) ;<syntaxhighlight lang="sql"> | ||
SELECT meno FROM zamestnanci | SELECT meno FROM zamestnanci | ||
WHERE plat > (SELECT AVG(plat) FROM zamestnanci); | WHERE plat > ( | ||
SELECT AVG(plat) FROM zamestnanci | |||
); | |||
-- mená zamestnancov, ktorých plat je vyšší ako priemerný plat všetkých zamestnancov | -- mená zamestnancov, ktorých plat je vyšší ako priemerný plat všetkých zamestnancov | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Riadok 28: | Riadok 30: | ||
#* Vráti viacero riadkov, používa sa s klauzulami <code>IN</code>, <code>ANY</code>, <code>ALL</code>;<syntaxhighlight lang="sql"> | #* Vráti viacero riadkov, používa sa s klauzulami <code>IN</code>, <code>ANY</code>, <code>ALL</code>;<syntaxhighlight lang="sql"> | ||
SELECT meno FROM zamestnanci | SELECT meno FROM zamestnanci | ||
WHERE oddelenie_id IN (SELECT oddelenie_id FROM oddelenia WHERE mesto = 'Bratislava'); | WHERE oddelenie_id IN ( | ||
SELECT oddelenie_id FROM oddelenia | |||
WHERE mesto = 'Bratislava' | |||
); | |||
-- mená zamestnancov, ktorí pracujú v oddeleniach so sídlom v Bratislave | -- mená zamestnancov, ktorí pracujú v oddeleniach so sídlom v Bratislave | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Riadok 44: | Riadok 49: | ||
#* Výsledok poddotazu sa správa ako dočasná tabuľka;<syntaxhighlight lang="sql"> | #* Výsledok poddotazu sa správa ako dočasná tabuľka;<syntaxhighlight lang="sql"> | ||
SELECT oddelenie_id, AVG(plat) FROM ( | SELECT oddelenie_id, AVG(plat) FROM ( | ||
SELECT * FROM zamestnanci WHERE vek > 30 | SELECT * FROM zamestnanci | ||
WHERE vek > 30 | |||
) AS podtabulka | ) AS podtabulka | ||
GROUP BY oddelenie_id; | GROUP BY oddelenie_id; |
Aktuálna revízia z 18:13, 11. január 2025
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:
- 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
- Vráti presne jeden riadok, používa sa s operátormi porovnania (
- 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
- Vráti viacero riadkov, používa sa s klauzulami
- 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
- Vráti viacero riadkov a stĺpcov (atribútov), používa sa najmä v klauzule
- 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
- Výsledok poddotazu sa správa ako dočasná tabuľka;
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()
.