Update (SQL)
Bài viết này là công việc biên dịch đang được tiến hành từ bài viết tiếng Anh từ một ngôn ngữ khác sang tiếng Việt. Bạn có thể giúp Wikipedia bằng cách hỗ trợ dịch và trau chuốt lối hành văn tiếng Việt theo cẩm nang của Wikipedia. |
Câu lệnh SQL UPDATE thay đổi hay cập nhật dữ liệu của một hay nhiều hàng trong bảng dữ liệu. Tùy theo điều kiện mà một số hàng hay tất cả các hàng trong bảng sẽ bị thay đổi.
Câu lệnh UPDATE
có cấu trúc như sau:
UPDATE
table_nameSET
column_name = value [, column_name = value ...] [WHERE
condition]
Để thực thi câu lệnh UPDATE
, người dùng phải có quyền sửa chữa dữ liệu (data manipulation privileges) (quyền UPDATE
) trên bảng hay cột, các dữ liệu được cập nhật phải thỏa các ràng buộc (như từ khóa chính, chỉ số duy nhất (unique indexes), ràng buộc CHECK
, và ràng buộc không rỗng NOT NULL
).
Ví dụ
Thay đổi giá trị ở cột C1 trong bảng T thành "1" ở những hàng có giá trị "a" ở cột C2.
UPDATE T SET C1 = 1 WHERE C2 = 'a'
Tăng giá trị ở cột C1 lên 1 nếu như giá trị trong cột C2 là "a".
UPDATE T SET C1 = C1 + 1 WHERE C2 = 'a'
Thêm tiền tố "text" vào giá trị ở cột C1 nếu như giá trị ở cột C2 là "a".
UPDATE T SET C1 = 'text' || C1 WHERE C2 = 'a'
Thay đổi giá trị ở cột C1 trong bảng T1 thành "2" nếu như giá trị trong cột C2 là một trong những giá trị tìm thấy ở cột C3 trong bảng T2 với giá trị trong cột C4 bằng 0.
UPDATE T1
SET C1 = 2
WHERE C2 IN ( SELECT C3
FROM T2
WHERE C4 = 0)
Cũng có thể đồng thời cập nhật dữ liệu trên nhiều cột:
UPDATE T SET C1 = 1, C2 = 2
Complex conditions are also possible:
UPDATE T SET A = 1 WHERE C1 = 1 AND C2 = 2
The SQL:2003 standard does not support updates of a joined table. Therefore, the following method needs to be used. Note that the subselect in the SET clause must be a scalar subselect, i.e. it can return at most a single row.
UPDATE T1
SET C1 = ( SELECT T2.C2
FROM T2
WHERE T1.ID = T2.ID )
WHERE EXISTS ( SELECT 1
FROM T2
WHERE T1.ID = T2.ID )