sql >> Database teknologi >  >> RDS >> Database

SQL OPDATERING

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;


  1. Kom godt i gang med Cloud Firestore til iOS

  2. Sådan implementeres et meget tilgængeligt Canvas LMS med en PostgreSQL-databaseklynge

  3. Hvad kan få en Oracle ROWID til at ændre sig?

  4. Løsning af MySQL-fejl Deadlock fundet, når du forsøger at få lås; prøv at genstarte transaktionen