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;