SQL-OPDATERING
SQL UPDATE-sætningen er anvendt til opdater og modificer de poster, der findes i en database . Det bruges til at ændre de allerede eksisterende poster gemt i tabellerne i databasen. Denne kommando arbejdes sammen med WHERE klausul. Betingelsen angivet i UPDATE-sætningen bruges til at bestemme, hvilke kolonner eller rækker i tabellen, der vil blive påvirket eller ændret.
UPDATE-kommandoen kan også bruges til at opdatere en tabel med en anden tabel. Det kan også bruges til at opdatere dato og klokkeslæt for en SQL-forespørgsel.
SQL OPDATERING JOIN
SQL UPDATE-sætningen kan også bruges til at opdatere en tabel ved hjælp af en anden tabel, som er forbundet med en join. Dette er kendt som SQL UPDATE JOIN-sætningen.
UPDATE table1, table2, INNER JOIN table1 ON table1.column1 = table2.column1 SET table1.column1 = table2.column2 WHERE condition
Følgende er den grundlæggende syntaks for UPDATE-sætningen ved hjælp af JOIN-sætningen:
Eksempel:
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'
Lad os først oprette den første tabel 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'
Lad os nu oprette den anden tabel TAE2.
SELECT * FROM TAE1
Col1 | Col2 | Col3 |
1 | 11 | Først |
11 | 12 | Anden |
21 | 13 | Tredje |
31 | 14 | Fjerde |
Output:
Lad os nu se indholdet af tabellen TAE2.
SELECT * FROM TAE2
Output:
Col1 | Col2 | Col3 |
1 | 21 | To-en |
11 | 22 | To-to |
21 | 23 | To-tre |
31 | 24 | To-fire |
Nu vil følgende forespørgsel opdatere rækkerne af TAE1, hvor værdien af Col1 er 21 og 31 ved hjælp af tabellen TAE2, hvor der er lignende rækker, og hvor Col1 er 21 og 31. Kun de tilsvarende poster for Col2 og Col3 i TAE1-tabellen vil blive opdateret .
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);
Output:
Col1 | Col2 | Col3 |
1 | 11 | Først |
11 | 12 | Anden |
21 | 13 | To-tre |
31 | 14 | To-fire |
Nu, hvis indholdet af tabellen TAE1 er markeret, vil følgende output blive opnået.
Indholdet af TAE2 forbliver dog uændret.
Col1 | Col2 | Col3 |
1 | 21 | To-en |
11 | 22 | To-to |
21 | 23 | To-tre |
31 | 24 | To-fire |
Dette er et eksempel på brug af JOIN-sætningen med UPDATE-sætningen. Det har slået ovenstående to tabeller sammen.
SQL OPDATERING DATO
SQL UPDATE DATE-sætningen bruges til at opdatere dato- og tidsfeltet i SQL.
UPDATE table_name SET data_field = ‘data_value’ WHERE conditions;
Det følgende er den generelle syntaks for opdatering af dato- og klokkeslætsfeltet i SQL :
UPDATE table_name SET data_field = getdate();
Det følgende er syntaksen for opdatering af datoen med den aktuelle dato i SQL :
UPDATE table_name SET data_field = CURRENT_TIMESTAMP;
Følgende er syntaksen for opdatering af dato og klokkeslæt med den aktuelle dato og klokkeslæt i SQL:
UPDATE table_name SET data_field = ‘YYYY-MM-DD HH:MM:SS’;
Følgende er syntaksen for opdatering af dato og klokkeslæt med en bestemt dato og klokkeslæt i SQL:
UPDATE table_name SET data_field = CAST(‘date_value’ AS DATETIME);
Følgende er syntaksen for opdatering af datoen med en bestemt værdi, når formatet på datoen ikke er kendt:
Eksempel:
UPDATE Employee SET DOJ = ‘2021-07-05’ WHERE Dept_ID = 10;
Følgende er et eksempel på opdatering af datoen i flere rækker i den givne medarbejder tabel.
Emp_ID | Emp_Name | Betegnelse | Manager_ID | DOJ | Løn | Afd_ID |
1 | Emp1 | instruktør | 2021-07-11 | 45.000 | 10 | |
2 | Emp2 | instruktø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 | Ekspedient | Emp3 | 2021-07-11 | 15.000 | 10 |
8 | Emp8 | Sælger | Emp4 | 2021-09-09 | 14000 | 20 |
9 | Emp9 | Sælger | Emp4 | 2021-10-08 | 13000 | 20 |
Forespørgsel:
Output:
Emp_ID | Emp_Name | Betegnelse | Manager_ID | DOJ | Løn | Afd_ID |
1 | Emp1 | instruktø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 | Ekspedient | Emp3 | 2021-07-05 | 15.000 | 10 |
Således er DOJ-kolonnen for alle medarbejdere, der har Dept_ID 10, blevet opdateret.
Følgende er et eksempel på opdatering af optagelsesdatoen i en elevtabel ved hjælp af CAST-funktionen:
UPDATE student
SET admission_date = CAST(‘2021-04-10’ AS DATETIME)
WHERE id = 42;