Cập nhật dữ liệu UPDATE SQL

Với câu lệnh UPDATE chúng ta có thể cập nhật dữ liệu cho bảng (sửa đổi các dòng dữ liệu có sẵn). Với cú pháp cơ bản như sau:

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

Trong đó bạn cần chỉ ra các cột và giá trị cần cập nhật vào cột sau từ khóa SET. Mệnh đề WHERE thường đi cùng trong trường hợp này nhằm xác định rõ các dòng nào sẽ được cập nhật. nếu thiếu mệnh đề WHERE toàn bộ các dòng dữ liệu sẽ cập nhật theo giá trị mới đưa vào!

Ví dụ bảng dữ liệu mẫu SQLite có bảng Customers với thông tin của dòng có CustomerID bằng 1 như sau:

Select * from Khachhang
where KhachhangID = 1
KhachhangIDHoTenTenLienLacDiachiThanhphoMaBuudienQuocGia
1Đặng Tuấn AnhĐặng Tuấn Anhnkhbiq Bà Rịa - Vũng TàuBà Rịa - Vũng Tàu222Đức

Ở đây có một file CSDL mẫu dạng SQLite, bạn có thể tải về nghiên cứu, thực hành: CSDL SQLite mẫu. Hoặc sử dụng trực tiếp công cụ Online: Chạy SQL

Giờ bạn dùng lệnh UPDATE để đổi HoTen thành 'Nguyên Văn B' và Thanhpho thành 'Hạ Long'

UPDATE Khachhang
SET HoTen = 'Nguyên Văn B', Thanhpho= 'Hạ Long'
WHERE KhachhangID = 1

Sau khi chạy lệnh trên, kiểm tra lại bằng câu lệnh SELECT

Select * from Khachhang where KhachhangID = 1

Kết quả dữ liệu đã cập nhật mới

KhachhangIDHoTenTenLienLacDiachiThanhphoMaBuudienQuocGia
1Nguyên Văn BĐặng Tuấn Anhnkhbiq Bà Rịa - Vũng TàuHạ Long222Đức

Cập nhật nhiều dòng

Mệnh đề WHERE dùng để xác định các dòng sẽ cập nhật. Qua đó, có thể xác định được một dòng, nhiều dòng, không dòng nào hay toàn bộ các dòng sẽ cập nhật. Nếu nhiều dòng được cập nhật trong một câu lệnh UPDATE thì dữ liệu cập nhật là giống nhau.

Ví sụ sau là một số trường hợp (bạn nên cận thận lưu lại CSDL vì lệnh cập nhật thay đổi trên nhiều dòng).

UPDATE Khachhang
SET HoTen='Xuân Thu'
WHERE Quocgia='Ý'

Nếu chạy lệnh trên tất các các dòng có Quocgia là Ý sẽ được cập nhật HoTen là 'Xuân Thu'

UPDATE Khachhang SET HoTen='Xuân Thu'

Không có mệnh đề WHERE nên nếu chạy mã trên toàn bộ các dòng được cập nhật trường HoTen có giá trị là 'Xuân Thu'


Đăng ký nhận bài viết mới