02. Lệnh UPDATE trong SQL

Lệnh UPDATE trong SQL

Lệnh UPDATE trong SQL được dùng để chỉnh sửa dữ liệu sẵn có trong database.

Ta có thể dùng lệnh UPDATE để chỉ ra rằng ta muốn chỉnh sửa cụ thể từng trường, hàng nào bằng cách sử dụng các điều kiện kèm với mệnh đề WHERE.

Hình thức của câu lệnh UPDATE như sau:

UPDATE ten_bang SET [ten_cot1 = gia_tri1,...,ten_cotn = gia_trin] [WHERE condition]

Ví dụ cách sử dụng lệnh UPDATE trong SQL

Ta xét bảng ‘Users’ sau:

ID Ten Ho Tai_khoan
1 Hung Tran hungtran
2 Hung Pham Kim hungkim
3 Dung Tran dungtran

Khi bạn muốn cập nhật cho trường ‘Tai_khoan” của Tran Hung từ ‘hungtran’ sang ‘tranhung’, bạn có thể dùng câu lệnh sau.

UPDATE Users

SET Tai_khoan = 'tranhung'

WHERE ID=1;

 Kết quả sau khi chạy lệnh UPDATE sẽ là:

ID Ten Ho Tai_khoan
1 Hung Tran tranhung
2 Hung Pham Kim hungkim
3 Dung Tran dungtran

Bạn có thể cập nhật nhiều trường trong một câu lệnh UPDATE.

Ví dụ khi bạn muốn chỉnh sửa từ  Tran” sang “Tran Quang” và ‘dungtran’ sang ‘dunztran’, bạn có thể dùng câu lệnh sau:

UPDATE Users

SET Tai_khoan = 'dunztran', Ho='Tran Quang'

WHERE ID=3;

Kết quả bạn thu được sau khi chạy câu lệnh trên như sau:

ID Ten Ho Tai_khoan
1 Hung Tran tranhung
2 Hung Pham Kim hungkim
3 Dung Tran Quang dunztran

Chú ý: Những cú pháp của các ví dụ trong bài học này là cú pháp dành cho MySQL

Cách sử dụng lệnh UPDATE cùng với lệnh SELECT

Chúng ta có thể sử dụng lệnh SELECT để cập nhật, chỉnh sửa các bản ghi thông qua lệnh UPDATE.

Cú pháp:

UPDATE bang_dich

SET ten_cot_bang_dich = ( 

SELECT ten_cot_bang_nguon  

FROM  bang_nguon

WHERE dieu_kien1)  WHERE dieu_kien2;

Xét một bảng khác có tên “Admins”:

ID Role Ten Tai_khoan
1 Admin Vi thuyvi
2 Admin Du chudu
3 Khach Duong thamdzuong

Khi bạn muốn UPDATE bảng Admins với dữ liệu từ bảng Users, bạn có thể dùng câu lệnh sau:

UPDATE Admins

SET Ten = (SELECT Ten FROM Users WHERE Admins.Ten = Users.Ten) 

WHERE ID>1;

Trong câu lệnh trên vì điều kiện của mệnh đề WHERE không được thỏa mãn (Admins.Ten = Users.Ten), nên kết quả trả về sẽ là ‘NULL’. Ta kiểm tra lại nội dung bảng Admins sau khi chạy lệnh trên:

SELECT * FROM Admins;

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *