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
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ệnhUPDATE
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
.
- Trình sửa đổi
LOW_PRIORITY
hướng dẫn câu lệnhUPDATE
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
,MERGE
vàMEMORY
. - Công cụ sửa đổi
IGNORE
cho phép câu lệnhUPDATE
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
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ộtemail
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
Để 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 saleRepEmployeeNumber
là NULL
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ì?
Để 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ì?
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.