Jazyk SQL
Příkaz UPDATE
 Tisk

Příkaz UPDATE


Příkaz UPDATE umožňuje změnit údaje v tabulce.


Obecný tvar příkazu je:


UPDATE tab

    SET NázevSloupce1    = hodnota1

           [, NázevSloupce2 = hodnota2 ...]

    [WHERE <podmínka_řádku>]


Jednoduchá změna sloupce pro všechny řádky


UPDATE mat SET cena = cena*1.10


Příkaz zvyšuje cenu všech materiálů v ceníku o 10% (ve všech řádkách tabulky).

Podívejte se na obr. .


Změna sloupce pro vybrané řádky


UPDATE duchody SET vyplatit = vyplatit + 500 WHERE vyplatit < 10000


Příkaz zvýší důchod o 500 Kč všem důchodcům, kteří pobírali méně než 10000 Kč.

Podívejte se na obr. .



Změna sloupce pro vybraný řádek


UPDATE mat SET cena = 1000 WHERE čislo_mat = 58013


Příkaz nastaví cenu materiálu 58013 na 1000 Kč (jednu buňku tabulky).

Podívejte na obr. .



Kombinace příkazu UPDATE a SELECT


UPDATE zam

    SET plat = 1.1*plat

    WHERE plat < 0.5 * (SELECT AVG(plat) FROM zam)


Příkaz zvýší o 10% plat všem zaměstnancům, kteří mají nižší plat než je polovina průměru platu všech zaměstnanců.

Podívejte se na obr. .

Složitější kombinace UPDATE a SELECT


UPDATE zam

     SET plat = plat + 1000

     WHERE plat < 0.5* (SELECT plat

                                        FROM zam nadrizeny, odd

                                        WHERE (zam.oddcis = odd.oddcis) AND

                                                     (odd.rc_sef = nadrizeny.rc))


Příkaz zvyšuje plat všem zaměstnancům, jejichž plat nedosahuje polovinu platu svého šéfa. V tomto okamžiku jsou ve hře dvě tabulky, zaměstnanci zam a oddělení odd. Tabulka zam se používá dvakrát, neboť jednou se jedná o plat zaměstnance, podruhé plat šéfa. To se rozliší tak, že v příkazu SELECT se v klausuli FROM zavede pro tabulku zam tzv. alias nadrizeny. První část podmínky v příkazu SELECT vybírá pro zaměstnance řádku jeho oddělení a druhá část podmínky propojuje oddělení s řádkou jeho šéfa v tabulce zaměstnanci.

Podívejte se na obr. .