Câu lệnh update trong MySQL

Câu lệnh update trong MySQL thường xuyên được sử dụng với mục đích sửa đổi, cập nhật dữ liệu. Do đó đây là câu lệnh cực kỳ quan trọng mà bất kỳ ai khi làm việc với cơ sở dữ liệu đều cần nắm rõ bản chất và cú pháp. Vậy, câu lệnh update trong Mysql là gì? Cùng Comdy tìm hiểu trong bài viết này nhé.

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

Giới thiệu về câu lệnh update trong MySQL
Câu lệnh update trong MySQL 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

Update là một trong số các câu lệnh trong mysql. Câu lệnh udpate mysql tương tự như lệnh lệnh update trong sql với chức năng chính là 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 MySQL

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

Sau đây là một số ví dụ về update select trong sql mà bạn có thể tham khảo để hiểu sâu hơn:

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

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;

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

UPDATE employees 
SET 
    email = '[email protected]'
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;

Sử dụng hàm update trong SQL để sửa đổi các giá trị trong nhiều cột

Hàm update sửa đổi các giá trị trong nhiều cột
Sử dụng hàm update trong SQL để 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 = '[email protected]'
WHERE
    employeeNumber = 1056;

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

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

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

Ví dụ về câu lệnh sql update 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;

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;

Cú pháp câu truy vấn cập nhật dữ liệu là gì?

Cú pháp câu truy vấn cập nhật dữ liệu là gì
Để truy vấn cập nhật dữ liệu, ta sử dụng câu lệnh update trong sql server hoặc update set trong sql server

Để truy vấn cập nhật dữ liệu, ta sử dụng câu lệnh update trong sql server hoặc update set trong sql server.

Cú pháp chung như sau:

UPDATE ten_bang
SET cot1 = gia_tri_moi1, cot2 = gia_tri_moi2, …
WHERE dieu_kien;

Trong đó:

  • ten_bang: Tên của bảng bạn muốn cập nhật dữ liệu.
  • cot1, cot2, …: Tên các cột bạn muốn cập nhật.
  • gia_tri_moi1, gia_tri_moi2, …: Giá trị mới bạn muốn cập nhật vào các cột tương ứng.
  • WHERE: Điều kiện để xác định dữ liệu cụ thể bạn muốn cập nhật. Nếu bạn không chỉ định điều kiện, toàn bộ dữ liệu trong bảng sẽ bị cập nhật.

Distinct trong MySQL là gì?

Distinct trong MySQL là gì
DISTINCT được sử dụng trong câu truy vấn SELECT để loại bỏ các giá trị trùng lặp từ kết quả truy vấn

Trong MySQL, từ khóa DISTINCT được sử dụng trong câu truy vấn SELECT để loại bỏ các giá trị trùng lặp từ kết quả truy vấn. Nó chỉ hiển thị các giá trị duy nhất từ cột hoặc các cột được chỉ định trong mệnh đề SELECT.

Cú pháp của distinct:

SELECT DISTINCT cot1, cot2, …
FROM ten_bang
WHERE dieu_kien;

Trong đó:

  • cot1, cot2, …: Các cột bạn muốn chọn giá trị duy nhất từ.
  • ten_bang: Tên của bảng mà bạn muốn thực hiện truy vấn.
  • WHERE: Điều kiện để lọc dữ liệu (nếu cần thiết).

Ví dụ:

SELECT DISTINCT mon_hoc
FROM diem_thi
WHERE nam_hoc = ‘2023’;

Kết lại

Trên đây là toàn bộ chia sẻ của Comdy để giúp bạn hiểu rõ hơn về câu lệnh update trong MySQL. Hi vọng những thông tin, kiến thức trong bài viết này là bổ ích và có ý nghĩa đối với bạn. Xin cám ơn vì đã dành thời gian theo dõi, ủng hộ bài viết.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *