Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
SQL – základní pojmy Ing. Roman Danel, Ph.D. roman.danel@vsb.cz
Institut ekonomiky a systémů řízení Hornicko–geologická fakulta
2
Přehled pojmů Projekce - FROM Restrikce - WHERE Kartézský součin
Spojování tabulek – JOIN DISTINCT – jedinečné hodnoty UNION – sjednocení dotazů EXCEPT – rozdíl dotazů INTERSECT – průnik dotazů Řazení výsledků – ORDER BY Seskupování – GROUP BY, filtr HAVING NULL Vnořené dotazy
3
Projekce Výpis části tabulky – seznam sloupců v příkazu SELECT
select jmeno, prijmeni from SEZNAM
4
Restrikce Omezení množiny řádků na základě podmínky – predikát WHERE
Podmínky lze kombinovat pomocí logických spojek select jmeno, prijmeni from SEZNAM where PRIJMENI = ‚Turek‘
5
Kartézský součin V dotazu můžeme za slovo FROM uvést více názvů tabulek. Dosáhneme tím tzv. kartézského součinu. Získáme množinu obsahující všechny kombinace záznamů Nežádoucí jev – měla by být restrikce - WHERE! select * from SEZNAM, PREDMETY
6
Spojování tabulek - JOIN
umožňuje oddělit dva druhy podmínek – jedny slouží k propojení tabulek (za JOIN … ON) a druhé k restrikci (za WHERE). Pomocí slova AS určíme aliasy tabulek select JMENO, PRIJMENI, NAZEV_PREDMET, ZNAMKA from SEZNAM left join VYSLEDKY on SEZNAM.ID_SEZNAM = VYSLEDKY.ID_SEZNAM left join PREDMETY on PREDMETY.ID_PREDMET = VYSLEDKY.ID_PREDMET where SEZNAM.PRIJMENI = 'Turek'
7
Distinct – jedinečné hodnoty
select prijmeni from SEZNAM select DISTINCT prijmeni from SEZNAM
8
Union – sjednocení dotazů
Sjednocená množina ze dvou tabulek Záznamy musí být stejného datového typu SELECT jmeno, prijmeni FROM osobni_kontakty UNION FROM autori;
9
EXCEPT – rozdíl dotazů Seznam osob, které jsou v autorech, ale nejsou v osobních kontaktech SRBD Oracle – „MINUS“ SELECT jmeno, prijmeni FROM autor EXCEPT FROM osobni_kontakty ORDER BY prijmeni
10
INTERSECT – průnik dotazů
Seznam osob, které jsou autorem a zároveň i osobou v našich kontaktech SELECT jmeno, prijmeni FROM autor INTERSECT FROM osobni_kontakty ORDER BY prijmeni
11
Řazení výsledků Ascending – vzestupně (od 0 do 9, od A do Z…)
Descending – sestupně (Z-A, 9-0) select jmeno, prijmeni from SEZNAM order by PRIJMENI [ascending / descending]
12
Seskupování – GROUP BY Seskupení dle podmínky v GROUP BY
Ve výčtu polí lze uvést pouze pole z GROUP BY nebo agregační funkce (count, sum, min, max…) Select prijmeni, count(*) from SEZNAM group by PRIJMENI
13
Seskupování – agregační funkce
Count Sum Min Max Avg (= average)
14
Seskupování – filtrování
Klauzule HAVING Select prijmeni, count(*) from SEZNAM group by PRIJMENI HAVING count(*) > 1
15
NULL hodnoty Hodnota není určena
Nelze porovnávat pomocí operátorů: =, >, < IS NULL, IS NOT NULL
16
Vnořené dotazy Zanořený dotaz Lze i na místě sloupce
SELECT max(pocet), min(pocet), avg(pocet) FROM ( SELECT count(k.id) AS pocet FROM autor AS a LEFT JOIN kniha AS k ON (a.id = k.autor) GROUP BY a.id ) AS knihy;
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.