sql >> Databasteknik >  >> RDS >> Database

SQL UPPDATERING

SQL UPPDATERING

SQL UPDATE-satsen används till uppdatera och ändra de poster som finns i en databas . Den används för att ändra de redan existerande poster som lagras i tabellerna i databasen. Detta kommando fungerar tillsammans med WHERE klausul. Villkoret som anges i UPDATE-satsen används för att bestämma vilka kolumner eller rader i tabellen som kommer att påverkas eller ändras.

Kommandot UPDATE kan också användas för att uppdatera en tabell med en annan tabell. Den kan också användas för att uppdatera datum och tid för en SQL-fråga.

SQL UPPDATERING GÅ MED

SQL UPDATE-satsen kan också användas för att uppdatera en tabell med en annan tabell som är sammankopplad med en join. Detta är känt som SQL UPDATE JOIN-satsen.

UPDATE table1, table2,
 INNER JOIN table1
 ON table1.column1 = table2.column1 
 SET table1.column1 = table2.column2
 WHERE condition

Följande är den grundläggande syntaxen för UPDATE-satsen som använder JOIN-satsen:

Exempel:

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'   

Låt oss först skapa den första tabellen 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'   

Låt oss nu skapa den andra tabellen TAE2.

SELECT *
 FROM TAE1 
Kol1 Kol2 Col3
1 11 Först
11 12 Andra
21 13 Tredje
31 14 Fjärde

Utdata:

Låt oss nu se innehållet i tabellen TAE2.

SELECT *
 FROM TAE2

Utdata:

Kol1 Kol2 Col3
1 21 Två-ett
11 22 Två-två
21 23 Två-tre
31 24 Två-fyra

Nu kommer följande fråga att uppdatera raderna i TAE1 där värdet på Col1 är 21 och 31 med hjälp av tabellen TAE2 där det finns liknande rader och där Col1 är 21 och 31. Endast motsvarande poster för Col2 och Col3 i TAE1-tabellen kommer att uppdateras .

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); 

Utdata:

Kol1 Kol2 Col3
1 11 Först
11 12 Andra
21 13 Två-tre
31 14 Två-fyra

Nu, om innehållet i tabellen TAE1 är markerat, kommer följande utdata att erhållas.

Innehållet i TAE2 förblir dock oförändrat.

Kol1 Kol2 Col3
1 21 Två-ett
11 22 Två-två
21 23 Två-tre
31 24 Två-fyra

Detta är ett exempel på hur JOIN-satsen används med UPDATE-satsen. Den har slagit samman ovanstående två tabeller.

SQL UPPDATERINGSDATUM

SQL UPDATE DATE-satsen används för att uppdatera datum- och tidsfältet i SQL.

UPDATE table_name
 SET data_field = ‘data_value’ 
 WHERE conditions; 

Följande är den allmänna syntaxen för att uppdatera datum- och tidsfältet i SQL :

UPDATE table_name
 SET data_field = getdate(); 

Följande är syntaxen för att uppdatera datumet med det aktuella datumet i SQL :

UPDATE table_name
 SET data_field = CURRENT_TIMESTAMP; 

Följande är syntaxen för att uppdatera datum och tid med aktuellt datum och tid i SQL:

 UPDATE table_name
 SET data_field = ‘YYYY-MM-DD HH:MM:SS’;

Följande är syntaxen för att uppdatera datum och tid med ett specifikt datum och tid i SQL:

UPDATE table_name
 SET data_field = CAST(‘date_value’ AS DATETIME); 

Följande är syntaxen för att uppdatera datumet med ett specifikt värde när formatet på datumet inte är känt:

Exempel:

UPDATE Employee
 SET DOJ = ‘2021-07-05’ 
 WHERE Dept_ID = 10; 

Följande är ett exempel på uppdatering av datumet i flera rader i den givna anställd bord.

Emp_ID Emp_Name Beteckning Manager_ID DOJ Lön Dept_ID
1 Emp1 Direktör 2021-07-11 45 000 10
2 Emp2 Direktör 2021-07-11 40 000 20
3 Emp3 Manager Emp1 2021-07-11 27 000 10
4 Emp4 Manager Emp2 2021-10-08 25 000 20
5 Emp5 Analytiker Emp3 2021-07-11 20 000 10
6 Emp6 Analytiker Emp3 2021-10-08 18 000 10
7 Emp7 Expeditör Emp3 2021-07-11 15 000 10
8 Emp8 Säljare Emp4 2021-09-09 14 000 20
9 Emp9 Säljare Emp4 2021-10-08 13 000 20

Fråga:

Utdata:

Emp_ID Emp_Name Beteckning Manager_ID DOJ Lön Dept_ID
1 Emp1 Direktör 2021-07-05 45 000 10
3 Emp3 Manager Emp1 2021-07-05 27 000 10
5 Emp5 Analytiker Emp3 2021-07-05 20 000 10
6 Emp6 Analytiker Emp3 2021-07-05 18 000 10
7 Emp7 Expeditör Emp3 2021-07-05 15 000 10

Således har DOJ-kolumnen för alla anställda som har Dept_ID 10 uppdaterats.

Följande är ett exempel på uppdatering av antagningsdatum i en studenttabell med CAST-funktionen:

UPDATE student
SET admission_date = CAST(‘2021-04-10’ AS DATETIME)
WHERE id = 42;


  1. EM12c Databas Tid Spendet Väntar på varningar

  2. Uppgradera PostgreSQL från 9.6 till 10.0 på Ubuntu 16.10

  3. Hur man länkar en tabell till en backend-databas i Access 2016

  4. Unitils och DBMaintainer - hur får man dem att fungera med flera användare/scheman?