Změna řádků: UPDATE

Data nejen přibývají, ale také se mění: zákazník se přestěhuje, hra dostane novou cenu. Příkaz UPDATE (aktualizuj) mění řádky, které už v tabulce jsou. Vojtěch Pokorný se přestěhoval z Plzně do Prahy:

UPDATE zakaznici
SET mesto = 'Praha'
WHERE id = 10;

Za UPDATE následuje tabulka. Za SET (nastav) je sloupec a za rovnítkem jeho nová hodnota. A WHERE říká, které řádky se mají změnit, přesně jako v dotazu: příkaz změní každý řádek, který podmínka najde, a žádný jiný. Na kartě Výsledky uvidíte Změněné řádky: 1 a změnu ukáže dotaz:

SELECT jmeno, mesto
FROM zakaznici
WHERE mesto = 'Praha';
jmenomesto
Eva NovotnáPraha
Tereza SvobodováPraha
Matěj NěmecPraha
Vojtěch PokornýPraha
Adéla KrálováPraha

Chcete-li změnit několik sloupců najednou, oddělte je čárkami: SET mesto = 'Praha', email = 'vojtech@pokorny.cz'. V SET znamená rovnítko „ulož tuto hodnotu“, kdežto ve WHERE porovnává. Tak také hodnotu smažete: SET mesto = NULL (prázdné hodnoty ale najdete pomocí WHERE mesto IS NULL, jak víte).

Když chcete změnit jeden konkrétní řádek, najděte ho podle primárního klíče, jako výše pomocí WHERE id = 10. Jména se mohou opakovat (dva zákazníci se klidně můžou jmenovat Vojtěch Pokorný) a text musí přesně souhlasit, kdežto ID znamená vždycky jeden řádek.

Ve WHERE příkazu UPDATE můžete použít všechno, co znáte: AND, OR, IN, LIKE, BETWEEN, funkce, a dokonce poddotazy. UPDATE může změnit jeden řádek, mnoho řádků, nebo žádný: když podmínka nic nenajde, není to chyba, příkaz prostě nic nezmění (Změněné řádky: 0).

Typická chyba: WHERE, které nic nenajde, třeba kvůli překlepu: WHERE jmeno = 'Vojtěch Pokrný'. Žádná chyba se neukáže a výsledek vašeho dotazu vypadá, jako by se nic nestalo. Když změna chybí, podívejte se, kolik řádků se změnilo: 0 znamená, že WHERE nenašlo žádný řádek.

Pokyny

Klára Horáková (ID 7) se přestěhovala z Plzně do Brna a má nový e-mail: klara@horakova.cz. Změňte obojí jedním příkazem UPDATE.

Pod něj ukažte ID, jméno, e-mail a město zákazníků z Brna, seřazené podle ID:

idjmenoemailmesto
2Jakub Dvořákjakub.d@mail.czBrno
6Tomáš Veselýtomas@vesely.czBrno
7Klára Horákováklara@horakova.czBrno
13Kristýna Fialovákristyna.fialova@mail.czBrno

Robot Rebellion (ID 18) má konečně datum vydání: vyjde 2026-03-20. Nastavte ho dalším příkazem UPDATE a pak ukažte název a datum vydání her vydaných 2025-06-01 nebo později, seřazené podle data vydání:

nazevvydano
Turbo Karts2025-06-05
Goal Rush2025-09-26
Knight's Oath2025-11-14
Robot Rebellion2026-03-20

Začněte programovat zdarma

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

3/9