Cvičení 3

Témata cvičení

Množinové operace

Dokumentace

(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.

  1. Objekty, které mají v domácnosti Nováků nebo v domácnosti Kroupů.
  2. Všechny objekty všech domácností (tj Nováků, Kroupů i Králíků).
  3. Objekty, které mají jen Novácí (tj nemají je Kroupovi ani Králíkovi).
  4. 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:

  1. Dotaz 1. a dotaz 2. vrátí stejnou relaci.
  2. Dotaz 3. a dotaz 4. vrátí stejnou relaci.
  3. 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:

  1. Obsahující pouze objekty s jinou než bílou barvou.
  2. Obsahující pouze objekty s cenou vyšší než 1000.
  3. Obsahující pouze bíle objekty těžší než 5.