01/10/2018, 16:41

Bài 17: Câu lệnh UPDATE trong MySQL

Chúng ta sử dụng câu lệnh UPDATE để cập nhật dữ liệu hiện có trong một bảng. Chúng ta có thể sử dụng câu lệnh nó để thay đổi giá trị cột của một hàng, một nhóm các hàng, hoặc tất cả các hàng trong một bảng. Cú pháp : UPDATE [LOW_PRIORITY] [IGNORE] [Tên_Bảng] SET [Tên_Cột_1] = ...

Chúng ta sử dụng câu lệnh UPDATE để cập nhật dữ liệu hiện có trong một bảng. Chúng ta có thể sử dụng câu lệnh nó để thay đổi giá trị cột của một hàng, một nhóm các hàng, hoặc tất cả các hàng trong một bảng.

Cú pháp:

UPDATE [LOW_PRIORITY] [IGNORE] [Tên_Bảng] 
SET 
    [Tên_Cột_1] = [Giá_Trị_1],
    [Tên_Cột_2] = [Giá_Trị_2],
    ...
WHERE
    [Điều_Kiện];

Trong đó:

  1. Đầu tiên bạn cần xác định tên bảng dữ liệu cần cập nhật sau từ khóa UPDATE
  2. Mệnh đề SET xác định cột nào sẽ tiến hành thay đổi gía trị và giá trị mới. Để tiến hành UPDATE nhiều cột bạn cần liệt kê một danh sách các cặp Tên_Cột='Giá_Trị' được tách nhau bởi dấu '. Giá trị thay đổi có thể là một hằng số, biểu thức hay thậm chí là một câu truy vấn con.
  3.  Thứ ba, bạn cần xác định dòng nào của bảng sẽ được cập nhật giá trị sử dụng một điều kiện trong mệnh đề WHERE. Đây là một điều kiện tùy chọn. Nếu bạn bỏ qua mệnh đề WHERE, câu lệnh UPDATE sẽ cập nhật tất cả các bản ghi trong bảng.
  4. Chú ý rằng mệnh đề WHERE là  phần quan trọng mà bạn không thể quên. Đôi khi, bạn chỉ muốn thay đổi trong một hàng. Tuy nhiên bạn quên mệnh đề WHERE và vô tình cập nhật tất cả các hàng trong bảng.

1. Sử dụng MySQL UPDATE một cột đơn.

Chúng ta sẽ sử dụng bảng suppliers(Nhà cung cấp) để thực hiện một số ví dụ này.

Bây giờ ta sẽ tiến hành cập nhật cho nhà cung cấp có supplier_id=1 với email là info@vinahost.vn.

SELECT * 
FROM suppliers

Bây giờ ta sẽ tiến hành cập nhật cho nhà cung cấp có supplier_id=1 với email là info@vinahost.vn.

UPDATE suppliers 
SET 
    email = 'info@vinahost.vn'
WHERE
    supplier_id = 1;

Bởi vì chúng ta chỉ muốn cập nhật một hàng, chúng ta sẽ sử dụng mệnh đề WHERE để chỉ định các dòng có supplier_id=1. Mệnh đề SET thiết lập một giá trị của cột email bằng một địa chỉ email mới.

Affected rows: 1

2. Sử dụng MySQL UPDATE nhiều cột

Để tiến hành UPDATE nhiều cột bạn cần liệt kê một danh sách các cặp Tên_Cột='Giá_Trị' trong mệnh đề SET và được tách nhau bởi dấu '.

Ví dụ: Trong bảng nhà cung cấp suppliers ta sẽ tiếp hành cập nhật hai trường đó là address và email của nhà cung cấp có supplier_id=2.

UPDATE suppliers 
SET 
    address = 'Số 5, Huỳnh Thúc Kháng, Thanh Xuân, Hà Nội',
    email = 'info@techhost.com'
WHERE
    supplier_id = 2;
Affected rows: 1

3. Tổng kết

Trong bài viết này mình đã trình bày về câu lệnh UPDATE. Có thể nói UPDATE là một trong tứ trụ của MySQL. Bạn không thể bỏ qua một lệnh nào. Trên đây mới chỉ là những vấn đề cơ bản của MySQL UPDTAE mà thôi. Mình cũng sẽ đề cập tới nó trong những bài tiếp theo như khă năng UPDATE từ câu lệnh SELECT hay UPDATE JOIN...

    Trần Trung Dũng

    15 chủ đề

    2610 bài viết

    Cùng chủ đề
    0