Cvičení 3
Témata cvičení
- Množinové operace: průnik, sjednocení, rozdíl
- UPDATE a DELETE
Množinové operace
(tabule + ukázka)
UPDATE a DELETE
Příkaz UPDATE umožňuje měnit hodnoty atributů v n-ticích splňujících dané podmínky.
UPDATE name SET col1 = val1, col2 = val2, ... , coln = valn WHERE condition;
(ukázka)
Příkaz DELETE umožňuje mazat n-tice splňující dané podmínky.
DELETE FROM name WHERE condition;
(ukázka)
Úkoly
Tady (a také na serveru v adresaří /home/PUBLIC/) 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. Dotazy si pište do skriptu, třeba do toho dodaného, ať si to nakonec můžeme celé projít.
- 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í si představte, že můžete do relace novakovi pouze přidávat (INSERT), z relace kroupovi pouze mazat (DELETE) a v relaci kralikovi pouze měnit hodnoty (UPDATE). Pomocí těchto akcí zajistěte, aby platilo:
- Dotaz 1. a dotaz 2. vrátí stejnou relaci.
- Dotaz 3. a dotaz 4. vrátí stejnou relaci.
- Dotaz 1. a 3. vrátí stejnou relaci.
Nyní pracujte pouze s relací novakovi a vyjádřete nejprve pomocí množinových operací nad restrikcí tabulky s jednoduchou podmínkou a poté pomocí složených podmínek v restrikci relace:
- 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.