Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

CẬP NHẬT SQL

CẬP NHẬT SQL

Câu lệnh SQL UPDATE được sử dụng đến cập nhật và sửa đổi các bản ghi có trong cơ sở dữ liệu . Nó được sử dụng để thay đổi các bản ghi đã tồn tại được lưu trữ trong các bảng trong cơ sở dữ liệu. Lệnh này được làm việc cùng với WHERE mệnh đề. Điều kiện được chỉ định trong câu lệnh UPDATE được sử dụng để quyết định cột hoặc hàng nào của bảng sẽ bị ảnh hưởng hoặc sửa đổi.

Lệnh UPDATE cũng có thể được sử dụng để cập nhật một bảng của một bảng khác. Nó cũng có thể được sử dụng để cập nhật ngày và giờ của một truy vấn SQL.

THAM GIA CẬP NHẬT SQL

Câu lệnh SQL UPDATE cũng có thể được sử dụng để cập nhật một bảng bằng cách sử dụng một bảng khác được kết nối bằng một phép nối. Đây được gọi là câu lệnh SQL UPDATE JOIN.

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

Sau đây là cú pháp cơ bản của câu lệnh UPDATE sử dụng mệnh đề JOIN:

Ví dụ:

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'   

Đầu tiên chúng ta hãy tạo bảng TAE1 đầu tiên.

 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'   

Bây giờ, hãy tạo bảng thứ hai TAE2.

SELECT *
 FROM TAE1 
Col1 Col2 Col3
1 11 Đầu tiên
11 12 Thứ hai
21 13 Thứ ba
31 14 Thứ tư

Đầu ra:

Bây giờ chúng ta hãy xem nội dung của bảng TAE2.

SELECT *
 FROM TAE2

Đầu ra:

Col1 Col2 Col3
1 21 Hai một
11 22 Hai hai
21 23 Hai phần ba
31 24 Hai bốn

Bây giờ truy vấn sau sẽ cập nhật các hàng của TAE1 trong đó giá trị của Col1 là 21 và 31 bằng cách sử dụng bảng TAE2 nơi có các hàng tương tự và trong đó Col1 là 21 và 31. Chỉ các bản ghi tương ứng của Col2 và Col3 của bảng TAE1 mới được cập nhật .

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

Đầu ra:

Col1 Col2 Col3
1 11 Đầu tiên
11 12 Thứ hai
21 13 Hai phần ba
31 14 Hai bốn

Bây giờ, nếu nội dung của bảng TAE1 được kiểm tra, kết quả sau sẽ nhận được.

Tuy nhiên, nội dung của TAE2 vẫn không thay đổi.

Col1 Col2 Col3
1 21 Hai một
11 22 Hai hai
21 23 Hai phần ba
31 24 Hai bốn

Đây là một ví dụ về việc sử dụng mệnh đề JOIN với câu lệnh UPDATE. Nó đã hợp nhất hai bảng trên.

NGÀY CẬP NHẬT SQL

Câu lệnh SQL UPDATE DATE được sử dụng để cập nhật trường ngày và giờ trong SQL.

UPDATE table_name
 SET data_field = ‘data_value’ 
 WHERE conditions; 

Sau đây là cú pháp chung của cập nhật trường ngày và giờ trong SQL :

UPDATE table_name
 SET data_field = getdate(); 

Sau đây là cú pháp của cập nhật ngày với ngày hiện tại trong SQL :

UPDATE table_name
 SET data_field = CURRENT_TIMESTAMP; 

Sau đây là cú pháp của cập nhật ngày và giờ với ngày và giờ hiện tại trong SQL:

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

Sau đây là cú pháp của cập nhật ngày và giờ với một ngày và giờ cụ thể trong SQL:

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

Sau đây là cú pháp của cập nhật ngày với một giá trị cụ thể khi không xác định được định dạng của ngày:

Ví dụ:

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

Sau đây là ví dụ về việc cập nhật ngày trong nhiều hàng trong Nhân viên nhất định bảng.

Emp_ID Emp_Name Chỉ định Manager_ID DOJ Lương Dept_ID
1 Emp1 Giám đốc 2021-07-11 45000 10
2 Emp2 Giám đốc 2021-07-11 40000 20
3 Emp3 Người quản lý Emp1 2021-07-11 27000 10
4 Emp4 Người quản lý Emp2 2021-10-08 25000 20
5 Emp5 Nhà phân tích Emp3 2021-07-11 20000 10
6 Emp6 Nhà phân tích Emp3 2021-10-08 18000 10
7 Emp7 Thư ký Emp3 2021-07-11 15000 10
8 Emp8 Người bán hàng Emp4 2021-09-09 14000 20
9 Emp9 Người bán hàng Emp4 2021-10-08 13000 20

Truy vấn:

Đầu ra:

Emp_ID Emp_Name Chỉ định Manager_ID DOJ Lương Dept_ID
1 Emp1 Giám đốc 2021-07-05 45000 10
3 Emp3 Người quản lý Emp1 2021-07-05 27000 10
5 Emp5 Nhà phân tích Emp3 2021-07-05 20000 10
6 Emp6 Nhà phân tích Emp3 2021-07-05 18000 10
7 Emp7 Thư ký Emp3 2021-07-05 15000 10

Do đó, cột DOJ cho tất cả nhân viên có Dept_ID 10 đã được cập nhật.

Sau đây là ví dụ về cập nhật ngày nhập học trong bảng sinh viên bằng cách sử dụng hàm CAST:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Giảm thiểu tác động của việc mở rộng cột IDENTITY - phần 3

  2. BÀN PHÍM SQL

  3. TRƯỜNG HỢP SQL:Biết và Tránh 3 rắc rối ít được biết đến

  4. Cải thiện Giải pháp Đánh số Trung vị Hàng

  5. Điều tra lỗi ORA 02063 DG4ODBC