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;