Trong thực tế, dữ liệu trong cơ sở dữ liệu không phải lúc nào cũng giữ nguyên. Có những lúc bạn cần sửa lại thông tin vì sai sót ban đầu, hoặc vì thông tin đã thay đổi — ví dụ như cập nhật số điện thoại học sinh, thay đổi điểm số, hoặc cập nhật trạng thái đơn hàng. Đó là lúc câu lệnh UPDATE
phát huy tác dụng.
Câu lệnh này cho phép bạn chỉnh sửa dữ liệu đã có trong một bảng, thay vì phải xóa đi rồi thêm lại dòng mới. Trong bài học này, bạn sẽ học cách sử dụng UPDATE
đúng cách, có điều kiện rõ ràng để tránh cập nhật nhầm dữ liệu.
Cú pháp cơ bản
UPDATE ten_bang
SET cot1 = gia_tri_moi1, cot2 = gia_tri_moi2, ...
WHERE dieu_kien;
Giải thích:
ten_bang
: tên bảng bạn muốn cập nhật.SET
: phần khai báo cột nào sẽ được thay đổi và thay đổi thành giá trị nào.WHERE
: điều kiện để giới hạn bản ghi cần cập nhật. Nếu bỏ quaWHERE
, toàn bộ bảng sẽ bị cập nhật, rất nguy hiểm!
Ví dụ thực tế
Giả sử bạn có bảng students
với các cột: id
, name
, class
, phone
.
Cập nhật số điện thoại của học sinh có id = 3:
UPDATE students
SET phone = '0909123456'
WHERE id = 3;
Cập nhật tên lớp của tất cả học sinh trong lớp ’10A’ thành ’10A1′:
UPDATE students
SET class = '10A1'
WHERE class = '10A';
Lưu ý quan trọng
- Luôn có điều kiện
WHERE
nếu chỉ muốn cập nhật một phần dữ liệu. Nếu không, tất cả dòng trong bảng sẽ bị ảnh hưởng.UPDATE students SET phone = '0000000000'; -- Sai sót nghiêm trọng nếu quên WHERE!
- Có thể dùng
UPDATE
với nhiều cột một lúc:UPDATE students SET class = '11B', phone = '0988888888' WHERE id = 5;
Kết hợp với SELECT để kiểm tra trước
Trước khi thực hiện UPDATE
, bạn nên chạy một câu SELECT
với điều kiện tương tự để kiểm tra đúng dữ liệu mình muốn cập nhật:
SELECT * FROM students WHERE id = 3;
Sau đó mới tiến hành câu UPDATE
tương ứng.
Tổng kết
Lệnh UPDATE
là công cụ không thể thiếu để điều chỉnh dữ liệu khi có thay đổi. Tuy nhiên, bạn cần thận trọng khi sử dụng, đặc biệt là trong môi trường thực tế với hàng ngàn bản ghi. Hãy luôn kiểm tra kỹ điều kiện WHERE
để tránh ảnh hưởng đến toàn bộ bảng.
Thảo luận