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';| jmeno | mesto |
|---|---|
| Eva Novotná | Praha |
| Tereza Svobodová | Praha |
| Matěj Němec | Praha |
| 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.
Jak psát:
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:
| id | jmeno | mesto | |
|---|---|---|---|
| 2 | Jakub Dvořák | jakub.d@mail.cz | Brno |
| 6 | Tomáš Veselý | tomas@vesely.cz | Brno |
| 7 | Klára Horáková | klara@horakova.cz | Brno |
| 13 | Kristýna Fialová | kristyna.fialova@mail.cz | Brno |
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í:
| nazev | vydano |
|---|---|
| Turbo Karts | 2025-06-05 |
| Goal Rush | 2025-09-26 |
| Knight's Oath | 2025-11-14 |
| Robot Rebellion | 2026-03-20 |
Začněte programovat zdarma
3/9