Cvičení 3
Témata cvičení
- SELECT přes více tabulek
- Množinové operace: průnik, sjednocení, rozdíl
SELECT podruhé
(tabule)
Množinové operace
- sjednocení (UNION), průnik (INTERSECT) a rozdíl (EXCEPT)
- existují i verze UNION ALL, INTERSECT ALL a EXCEPT ALL, které pracují s duplicitami
- argumenty musí mít kompatibilní typy (tj mít stejný počet sloupců a sloupce po řadě kompatibilní)
(ukázka)
Úkoly
Tady máte skript vytvářející tři relace: novakovi, kroupovi a kralikovi obsahujici soupis majetku tří rodin. Navrhněte dotazy vracející následující výsledky. Vyzkoušejte je.
- Objekty, které mají v domácnosti Nováků nebo v domácnosti Kroupů.
- Všechny objekty všech domácností (tj. Nováků, Kroupů i Králíků).
- Objekty, které mají jen Novácí (tj. nemají je Kroupovi ani Králíkovi).
- Objekty, které má jen jedna rodina (kterákoliv).
Nyní pracujte pouze s relací novakovi a vyjádřete (kde je to možné) nejprve pomocí množinových operací nad relací získanou z dat SELECT výrazem s jednoduchou podmínkou a poté pomocí složených podmínek v SELECT výrazu nad původní relací:
Obsahující pouze objekty s jinou než bílou barvou.
Obsahující pouze objekty s cenou vyšší než 1000.
Obsahující pouze bíle objekty těžší než 5.
K dispozici máte data o zaměstnancích (Ve skriptu je pár věcí, které zatím neznáte. Netrapte se jimi, skript stačí jen spustit.) Napište dotaz, který v této databázi najde:
- zaměstnání (title zaměstnání), která má alespoň jeden zaměstnanec,
- zaměstnání (id zaměstnání, title zaměstnání) konkretniho zaměstnance,
- města (city) v zadané zemi,
- křestní jména zaměstnanců pracujících v IT oddělení (zkuste všechna i unikátní)
- zaměstnance (id zaměstnance, title zaměstnání), jejichž zaměstnání může mít daný plat (tj daný plat mezi zadaným min a max),
- zaměstnance (id zaměstnance, title zaměstnání, city) pracující v zadaném městě.