sql >> Databáze >  >> RDS >> Database

AKTUALIZACE SQL

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;


  1. Jak vytvořit rozšíření pro SSMS 2019 (v18)

  2. Deklarujte uživatelsky definovanou výjimku pomocí metody RAISE_APPLICATION_ERROR v databázi Oracle

  3. Jak filtrovat řádky s hodnotami Null v příkazu Select v SQL Server - SQL Server / Výukový program TSQL, část 110

  4. Výměna hodnot sloupců v MySQL