Hướng dẫn update trong mysql



Câu lệnh UPDATE trong MySQL được sử dụng để sửa đổi các bản ghi hiện có trong một bảng. Bạn có thể sử dụng mệnh đề WHERE với truy vấn UPDATE để cập nhật các bản ghi đã chọn, nếu không tất cả các bản ghi sẽ bị ảnh hưởng.

Cú pháp

Cú pháp cơ bản của truy vấn UPDATE với mệnh đề WHERE như sau:

UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];

Bạn có thể kết hợp N số điều kiện bằng toán tử AND hoặc OR.



Ví dụ

Giả sử bảng CUSTOMERS có các bản ghi sau đây:

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ha Anh   |  32 | Da Nang   |  2000.00 |
|  2 | Van Ha   |  25 | Ha Noi    |  1500.00 |
|  3 | Vu Bang  |  23 | Vinh      |  2000.00 |
|  4 | Thu Minh |  25 | Ha Noi    |  6500.00 |
|  5 | Hai An   |  27 | Ha Noi    |  8500.00 |
|  6 | Hoang    |  22 | Ha Noi    |  4500.00 |
|  7 | Binh     |  24 | Ha Noi    | 10000.00 |
+----+----------+-----+-----------+----------+

Truy vấn sau sẽ cập nhật ADDRESS cho một khách hàng có số ID là 6 trong bảng.

UPDATE CUSTOMERS
SET ADDRESS = 'Vinh Phuc'
WHERE ID = 6;

Bây giờ, bảng CUSTOMERS sẽ có các bản ghi sau đây:

Hướng dẫn update trong mysql

Nếu muốn sửa đổi tất cả các giá trị ADDRESS và SALARY trong bảng CUSTOMERS, bạn không cần phải sử dụng mệnh đề WHERE vì chỉ cần câu lệnh UPDATE là đủ như thể hiện trong câu lệnh sau đây.

UPDATE CUSTOMERS
SET ADDRESS = 'Ha Noi', SALARY = 1000.00;

Bây giờ, bảng CUSTOMERS sẽ có các bản ghi sau đây:

Hướng dẫn update trong mysql



  • Trung Nguyen
  • 24/02/2022

  • 5 min read

Cập nhật dữ liệu là một trong những nhiệm vụ quan trọng nhất khi bạn làm việc với cơ sở dữ liệu. Trong hướng dẫn này, bạn sẽ học cách sử dụng câu lệnh UPDATE trong MySQL để cập nhật dữ liệu trong bảng.

Giới thiệu về câu lệnh UPDATE trong MySQL

Câu lệnh UPDATE cập nhật dữ liệu trong một bảng. Nó cho phép bạn thay đổi các giá trị trong một hoặc nhiều cột của một hàng hoặc nhiều hàng.

Phần sau minh họa cú pháp cơ bản của câu lệnh UPDATE:

UPDATE [LOW_PRIORITY] [IGNORE] table_name 
SET 
    column_name1 = expr1,
    column_name2 = expr2,
    ...
[WHERE
    condition];

Trong cú pháp này:

  • Đầu tiên, chỉ định tên của bảng mà bạn muốn cập nhật dữ liệu sau từ khóa UPDATE.
  • Thứ hai, chỉ định cột bạn muốn cập nhật và giá trị mới trong mệnh đề SET. Để cập nhật giá trị trong nhiều cột, bạn sử dụng danh sách các phép gán được phân tách bằng dấu phẩy bằng cách cung cấp một giá trị trong phép gán của mỗi cột dưới dạng giá trị thường, biểu thức hoặc truy vấn con.
  • Thứ ba, chỉ định các hàng sẽ được cập nhật bằng cách sử dụng một điều kiện trong mệnh đề WHERE. Mệnh đề WHERE là tùy chọn. Nếu bạn bỏ qua nó, câu lệnh UPDATE sẽ sửa đổi tất cả các hàng trong bảng.
Chú ý rằng mệnh đề WHERE rất quan trọng mà bạn không được quên. Đôi khi, bạn có thể chỉ muốn cập nhật một hàng; Tuy nhiên, bạn có thể quên mệnh đề WHERE và vô tình cập nhật tất cả các hàng của bảng.

MySQL hỗ trợ hai bổ ngữ trong câu lệnh UPDATE.

  1. Trình sửa đổi LOW_PRIORITY hướng dẫn câu lệnh UPDATE trì hoãn cập nhật cho đến khi không có kết nối đọc dữ liệu từ bảng. LOW_PRIORITY có hiệu lực đối với các công cụ lưu trữ chỉ sử dụng khóa cấp bảng, chẳng hạn như MyISAM, MERGEMEMORY.
  2. Công cụ sửa đổi IGNORE cho phép câu lệnh UPDATE tiếp tục cập nhật các hàng ngay cả khi đã xảy ra lỗi. Các hàng gây ra lỗi như xung đột khóa trùng lặp không được cập nhật.

Ví dụ về câu lệnh UPDATE trong MySQL

Hãy thực hành câu lệnh UPDATE.

Sử dụng UPDATE trong MySQL để sửa đổi các giá trị trong một cột đơn

Xem bảng employees sau từ cơ sở dữ liệu mẫu.

Hướng dẫn update trong mysql

Trong ví dụ này, chúng ta sẽ cập nhật email của Mary Patterson thành email mới .

Trước tiên, hãy tìm email của Mary từ bảng employees bằng cách sử dụng câu lệnh SELECT sau:

SELECT 
    firstname, 
    lastname, 
    email
FROM
    employees
WHERE
    employeeNumber = 1056;

Đầu ra:

Hướng dẫn update trong mysql

Thứ hai, cập nhật địa chỉ email của Mary thành email mới :

UPDATE employees 
SET 
    email = ''
WHERE
    employeeNumber = 1056;

MySQL đã đưa ra số hàng bị ảnh hưởng:

1 row(s) affected

Trong câu lệnh UPDATE này:

  • Mệnh đề WHERE chỉ định hàng có mã nhân viên là 1056 sẽ được cập nhật.
  • Mệnh đề SET đặt giá trị của cột email thành email mới.

Thứ ba, thực hiện lại câu lệnh SELECT để xác minh thay đổi:

SELECT 
    firstname, 
    lastname, 
    email
FROM
    employees
WHERE
    employeeNumber = 1056;

Đầu ra:

Hướng dẫn update trong mysql

Sử dụng UPDATE trong MySQL để sửa đổi các giá trị trong nhiều cột

Để cập nhật các giá trị trong nhiều cột, bạn cần chỉ định các thành phần trong mệnh đề SET. Ví dụ: câu lệnh sau cập nhật cả cột  họ và email của nhân viên mã 1056:

UPDATE employees 
SET 
    lastname = 'Hill',
    email = ''
WHERE
    employeeNumber = 1056;

Hãy xác minh các thay đổi:

SELECT 
    firstname, 
    lastname, 
    email
FROM
    employees
WHERE
    employeeNumber = 1056;

Đầu ra:

Hướng dẫn update trong mysql

Sử dụng UPDATE trong MySQL để thay thế chuỗi

Ví dụ sau cập nhật các phần miền của tất cả các email cả tất cả Sales Reps có mã văn phòng là 6:

UPDATE employees
SET email = REPLACE(email,'@classicmodelcars.com','@mysqltutorial.org')
WHERE
   jobTitle = 'Sales Rep' AND
   officeCode = 6;

Trong ví dụ này, hàm REPLACE() thay thế @classicmodelcars.com trong cột email bằng @mysqltutorial.org.

Sử dụng UPDATE trong MySQL để cập nhật các hàng được trả về bởi một câu lệnh SELECT

Bạn có thể cung cấp các giá trị cho mệnh đề SET từ một câu lệnh SELECT truy vấn dữ liệu từ các bảng khác.

Ví dụ, trong bảng customers một số khách hàng không có bất kỳ đại diện bán hàng nào. Giá trị của cột saleRepEmployeeNumberNULL như sau:

SELECT 
    customername, 
    salesRepEmployeeNumber
FROM
    customers
WHERE
    salesRepEmployeeNumber IS NULL;

Đầu ra:

Hướng dẫn update trong mysql

Chúng ta có thể lấy đại diện bán hàng và cập nhật cho những khách hàng đó.

Để thực hiện việc này, chúng ta có thể chọn ngẫu nhiên một nhân viên có chức danh Sales Rep từ bảng employees và cập nhật cho bảng employees.

Truy vấn này chọn một nhân viên ngẫu nhiên từ bảng employees có chức danh Sales Rep.

SELECT 
    employeeNumber
FROM
    employees
WHERE
    jobtitle = 'Sales Rep'
ORDER BY RAND()
LIMIT 1;

Để cập nhật cột số nhân viên đại diện bán hàng trong bảng customers, chúng ta đặt truy vấn ở trên trong mệnh đề SET của câu lệnh UPDATE như sau:

UPDATE customers 
SET 
    salesRepEmployeeNumber = (SELECT 
            employeeNumber
        FROM
            employees
        WHERE
            jobtitle = 'Sales Rep'
        ORDER BY RAND()
        LIMIT 1)
WHERE
    salesRepEmployeeNumber IS NULL;

Nếu bạn truy vấn dữ liệu từ bảng employees, bạn sẽ thấy rằng mọi khách hàng đều có một đại diện bán hàng. Nói cách khác, truy vấn sau không trả về hàng nào.

SELECT 
     salesRepEmployeeNumber
FROM
    customers
WHERE
    salesRepEmployeeNumber IS NULL;

Trong hướng dẫn này, bạn đã học cách sử dụng câu lệnh UPDATE trong MySQL để cập nhật dữ liệu trong bảng cơ sở dữ liệu.

Nếu Comdy hữu ích và giúp bạn tiết kiệm thời gian

Bạn có thể vui lòng tắt trình chặn quảng cáo ❤️ để hỗ trợ chúng tôi duy trì hoạt động của trang web.

MySQL