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 Customers
where CustomerID = 1
CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany

Bạn có thể thực hành các câu lệnh SQL ví dụ trên CSDL mẫu SQLite có sẵn tại SQLite và thực hành lệnh SQL

Giờ bạn dùng lệnh UPDATE để đổi ContactName thành 'Alfred Schmidt' và City thành 'Frankfurt'

UPDATE Customers
SET ContactName = 'Alfred Schmidt', City= 'Frankfurt'
WHERE CustomerID = 1;

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

Select * from Customers
where CustomerID = 1

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

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Alfred Schmidt Obere Str. 57 Frankfurt 12209 Germany

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 Customers
SET ContactName='Juan'
WHERE Country='Mexico';

Nếu chạy lệnh trên tất các các dòng có Country là Mexico sẽ được cập nhật ContactName là Juan

UPDATE Customers
SET ContactName='Juan'

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 ContactName có giá trị là Juan