AKTUALIZACE SQL
Příkaz SQL UPDATE je využit komu aktualizovat a upravovat záznamy v databázi . Slouží ke změně již existujících záznamů uložených v tabulkách v databázi. Tento příkaz funguje společně s příkazem WHERE doložka. Podmínka uvedená v příkazu UPDATE se používá k rozhodnutí, které sloupce nebo řádky tabulky budou ovlivněny nebo změněny.
Příkaz UPDATE lze také použít k aktualizaci tabulky jinou tabulkou. Může být také použit k aktualizaci data a času SQL dotazu.
SPOJENÍ AKTUALIZACE SQL
Příkaz SQL UPDATE lze také použít k aktualizaci jedné tabulky pomocí jiné tabulky, které jsou spojeny spojením. Toto je známé jako příkaz SQL UPDATE JOIN.
UPDATE table1, table2, INNER JOIN table1 ON table1.column1 = table2.column1 SET table1.column1 = table2.column2 WHERE condition
Níže je uvedena základní syntaxe příkazu UPDATE pomocí klauzule JOIN:
Příklad:
CREATE TABLE TAE1 (Col1 INT, Col2 INT, Col3 VARCHAR (100)) INSERT INTO TAE1 (Col1, Col2, Col3) SELECT 1, 11, 'FIRST' UNION ALL SELECT 11,12, 'SECOND' UNION ALL SELECT 21, 13, 'THIRD' UNION ALL SELECT 31, 14, 'FOURTH'
Nejprve vytvoříme první tabulku TAE1.
CREATE TABLE TAE2 (Col1 INT, Col2 INT, Col3 VARCHAR (100)) INSERT INTO TAE2 (Col1, Col2, Col3) SELECT 1, 21, 'TWO-ONE' UNION ALL SELECT 11,22, 'TWO-TWO' UNION ALL SELECT 21, 23, 'TWO-THREE' UNION ALL SELECT 31, 24, 'TWO-FOUR'
Nyní vytvoříme druhou tabulku TAE2.
SELECT * FROM TAE1
Sloupec1 | Sloupec 2 | Sloupec 3 |
1 | 11 | První |
11 | 12 | Druhý |
21 | 13 | Třetí |
31 | 14 | Čtvrté |
Výstup:
Nyní se podívejme na obsah tabulky TAE2.
SELECT * FROM TAE2
Výstup:
Sloupec1 | Sloupec 2 | Sloupec 3 |
1 | 21 | Dva-jedna |
11 | 22 | Dva-dva |
21 | 23 | Dva-tři |
31 | 24 | Dva-čtyři |
Nyní následující dotaz aktualizuje řádky TAE1, kde hodnota Col1 je 21 a 31 pomocí tabulky TAE2, kde jsou podobné řádky a kde Col1 je 21 a 31. Aktualizovány budou pouze odpovídající záznamy Col2 a Col3 tabulky TAE1 .
UPDATE TAE1 SET Col2 = TAE2.Col2, Col3 = TAE2.Col3 FROM TAE1 INNER JOIN TAE2 ON TAE1.Col1 = TAE2.Col1 WHERE TAE1.Col1 IN (21, 31);
Výstup:
Sloupec1 | Sloupec 2 | Sloupec 3 |
1 | 11 | První |
11 | 12 | Druhý |
21 | 13 | Dva-tři |
31 | 14 | Dva-čtyři |
Nyní, pokud je zkontrolován obsah tabulky TAE1, bude získán následující výstup.
Obsah TAE2 však zůstává nezměněn.
Sloupec1 | Sloupec 2 | Sloupec 3 |
1 | 21 | Dva-jedna |
11 | 22 | Dva-dva |
21 | 23 | Dva-tři |
31 | 24 | Dva-čtyři |
Toto je příklad použití klauzule JOIN s příkazem UPDATE. Sloučil výše uvedené dvě tabulky.
DATUM AKTUALIZACE SQL
Příkaz SQL UPDATE DATE se používá k aktualizaci pole data a času v SQL.
UPDATE table_name SET data_field = ‘data_value’ WHERE conditions;
Následuje obecná syntaxe aktualizace pole data a času v SQL :
UPDATE table_name SET data_field = getdate();
Následuje syntaxe aktualizace data aktuálním datem v SQL :
UPDATE table_name SET data_field = CURRENT_TIMESTAMP;
Následuje syntaxe aktualizace data a času aktuálním datem a časem v SQL:
UPDATE table_name SET data_field = ‘YYYY-MM-DD HH:MM:SS’;
Následuje syntaxe aktualizace data a času konkrétním datem a časem v SQL:
UPDATE table_name SET data_field = CAST(‘date_value’ AS DATETIME);
Následuje syntaxe aktualizace data konkrétní hodnotou, když formát data není znám:
Příklad:
UPDATE Employee SET DOJ = ‘2021-07-05’ WHERE Dept_ID = 10;
Následuje příklad aktualizace data ve více řádcích v daném zaměstnanci tabulka.
Emp_ID | Emp_Name | Označení | ID_manažera | DOJ | Plat | ID_oddělení |
1 | Emp1 | Ředitel | 2021-07-11 | 45 000 | 10 | |
2 | Emp2 | Ředitel | 2021-07-11 | 40 000 | 20 | |
3 | Emp3 | Manažer | Emp1 | 2021-07-11 | 27 000 | 10 |
4 | Emp4 | Manažer | Emp2 | 2021-10-08 | 25 000 | 20 |
5 | Emp5 | Analytik | Emp3 | 2021-07-11 | 20 000 | 10 |
6 | Emp6 | Analytik | Emp3 | 2021-10-08 | 18 000 | 10 |
7 | Emp7 | Úřednice | Emp3 | 2021-07-11 | 15 000 | 10 |
8 | Emp8 | Prodejce | Emp4 | 2021-09-09 | 14 000 | 20 |
9 | Emp9 | Prodejce | Emp4 | 2021-10-08 | 13 000 | 20 |
Dotaz:
Výstup:
Emp_ID | Emp_Name | Označení | ID_manažera | DOJ | Plat | ID_oddělení |
1 | Emp1 | Ředitel | 2021-07-05 | 45 000 | 10 | |
3 | Emp3 | Manažer | Emp1 | 2021-07-05 | 27 000 | 10 |
5 | Emp5 | Analytik | Emp3 | 2021-07-05 | 20 000 | 10 |
6 | Emp6 | Analytik | Emp3 | 2021-07-05 | 18 000 | 10 |
7 | Emp7 | Úřednice | Emp3 | 2021-07-05 | 15 000 | 10 |
Proto byl aktualizován sloupec DOJ pro všechny zaměstnance s Dept_ID 10.
Následuje příklad aktualizace data přijetí v tabulce studentů pomocí funkce CAST:
UPDATE student
SET admission_date = CAST(‘2021-04-10’ AS DATETIME)
WHERE id = 42;