Câu lệnh SQL UPDATE

Câu lệnh UPDATE table SET ... WHERE ... dùng để cập nhật dữ liệu 1 hoặc nhiều dòng (records).

Cú pháp UPDATE

Chúng ta có thể sử dụng câu lệnh UPDATE với 2 cách sau:

Cách 1: UPDATE dữ liệu toàn bộ các dòng (records) tương ứng với các cột có trong table (còn gọi là UPDATE không điều kiện WHERE).

Cú pháp như sau:
UPDATE table_name
SET column1 = value1, 
    column2 = value2, ...;

Cách này cần phải sử dụng cẩn thận, nếu không có điều kiện WHERE dòng dữ liệu (record) cụ thể. Dữ liệu trong toàn bộ bảng (table) sẽ được cập nhật lại tất cả.

Cách 2: UPDATE dữ liệu của 1 hoặc nhiều các dòng (records) tương ứng với các cột có trong table thỏa điều kiện cụ thể (còn gọi là UPDATE có điều kiện WHERE).

Cú pháp như sau:
UPDATE table_name
SET column1 = value1, 
    column2 = value2, ...
WHERE condition1
      AND condition2
      OR condition3 ...;

Cách này thường được sử dụng trong dự án.


Ví dụ 1: Cập nhật 1 dòng dữ liệu (record) cụ thể trong bảng (table) Nhà cung cấp shop_suppliers theo điều kiện WHERE = id

  • Dữ liệu mong muốn:
UPDATE dữ liệu cho dòng (record) có id=6 trong table Nhà cung cấp shop_suppliers:
id supplier_code supplier_name description image created_at updated_at
6 SUP_GOOGLE Google Company Công ty Google, công cụ Search nổi tiếng suppliers/google_new_logo.jpg 2020-02-17 16:08:53 2020-08-15 12:51:53
  • Lưu đồ Cập nhật dữ liệu

Step 1: Chuẩn bị câu lệnh UPDATE query

  • Lưu đồ xử lý việc UPDATE dữ liệu
  • Câu lệnh UPDATE query:
-- UPDATE dữ liệu trong table `shop_suppliers` với điều kiện id=6
UPDATE `shop_suppliers`
SET	supplier_code='SUP_GOOGLE',
  supplier_name='Google Company',
  description=N'Công ty Google, công cụ Search nổi tiếng',
  image='suppliers/google_new_logo.jpg',
  updated_at='2020-08-15 12:51:53'
WHERE id=6;

Step 2: thực thi (Execute) câu lệnh SQL query trong HeidiSQL

Ví dụ 2: cập nhật giá niêm yết (cột standard_cost) của tất cả sản phẩm trong table shop_products tăng lên 500.000đ

Thực thi câu lệnh sau:
-- UPDATE cột `standard_cost` của tất cả các dòng (records) trong table `shop_products` tăng lên 500.000đ
-- Công thức: lấy giá hiện tại của cột `standard_cost` + 500000
UPDATE `shop_products`
SET standard_cost = standard_cost + 500000;