Souhrn: v tomto kurzu se naučíte, jak pomocí příkazu SQL UPDATE upravit existující data v tabulce.
Syntaxe příkazu SQL UPDATE
Příkaz UPDATE
mění existující data v jednom nebo více řádcích tabulky. Následující obrázek znázorňuje syntaxi příkazu UPDATE
:
1
2
3
4
5
6
7
|
UPDATE tabulka
SET
sloupec1 = nová_hodnota1,
sloupec2 = new_value2,
…
WHERE
podmínka;
|
Chcete-li aktualizovat data v tabulce, musíte:
- Nejprve v klauzuli
UPDATE
zadat název tabulky, jejíž data chcete změnit. - Druhé přiřadit novou hodnotu sloupce, který chcete aktualizovat. V případě, že chcete aktualizovat data ve více sloupcích, oddělte každou dvojici sloupec = hodnota čárkou (,).
- Zatřetí zadejte v klauzuli WHERE, které řádky chcete aktualizovat. Klauzule
WHERE
je nepovinná. Pokud klauzuliWHERE
vynecháte, budou aktualizovány všechny řádky tabulky.
Bázový stroj po provedení příkazu vydá zprávu s uvedením počtu ovlivněných řádků.
Příklady příkazuSQL UPDATE
Podívejme se na několik příkladů použití příkazu UPDATE
s tabulkou employees
:
Příklad příkazuSQL UPDATE jednoho sloupce
Předpokládejme, že se Janet, která má ID zaměstnance 3, vdá, takže potřebujete změnit její příjmení v tabulce employees
.
Záznam Janet v zaměstnancích před aktualizací je následující:
1
2
3
4
5
6
|
SELECT
employeeid, příjmení, jméno
FROM
northwind_bk.employees
WHERE
employeeid = 3;
|
Následující příkaz změní příjmení Janet z Levering na Hill:
1
2
3
4
5
|
UPDATE employees
SET
lastname = ‚Hill‘
WHERE
employeeID = 3;
|
Proveďte výše uvedený příkaz SELECT znovu, abyste ověřili změnu:
SQL UPDATE více sloupců
Příklad Janet se přestěhovala do nového domu, proto se změnila její adresa. Nyní ji musíte změnit v tabulce employees
pomocí následujícího příkazu:
1
2
3
4
5
6
7
8
|
UPDATE zaměstnanci
SET
adresa = ‚1300 Carter St‘,
city = ‚San Jose‘,
postalcode = 95125,
region = ‚CA‘
WHERE
employeeID = 3;
|
SQL UPDATE více řádků
Následující příkaz UPDATE
zvýší plat o 2 % u zaměstnanců, jejichž plat je nižší než 2000 USD:
1
2
3
4
5
|
UPDATE employees
SET
plat = plat * 1.02
WHERE
plat < 2000;
|
Povýšení získali ti zaměstnanci, jejichž plat je nižší než 2 tis.
SQL UPDATE from SELECT
Následující dotaz vybere prodejce, který měl na starosti více než 100 zakázek:
1
2
3
4
5
6
7
8
|
SELECT
employeeid, COUNT(orderid)
FROM
orders
WHERE
shippeddate IS NOT NULL
GROUP BY employeeid
HAVING COUNT(orderid) > 100;
|
Následující dotaz zvyšuje mzdu nejlepších prodejců o 5 %. Identifikátory nejlepších prodejních osob jsou zadány pomocí poddotazu.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
UPDATE zaměstnanci
SET
plat = plat * 1.05
WHERE
employeeid IN (SELECT
employeeid
FROM
(SELECT
employeeid, COUNT(orderid)
FROM
orders
WHERE
shippeddate IS NOT NULL
GROUP BY employeeid
HAVING COUNT(orderid) > 100) bestsalesperson)
|
V tomto návodu, jsme si ukázali, jak pomocí příkazu SQL UPDATE změnit údaje v jednom nebo více řádcích tabulky.
- Byl tento návod užitečný?
- AnoNe
.