Lệnh Update trong SQL Server

Trong bài này chúng ta sẽ tìm hiểu lệnh update trong SQL Server, đây là lệnh dùng để cập nhật dữ liệu của một table nào đó, thường sẽ đi kết hợp với lệnh Where.

1. Giới thiệu lệnh Update trong SQL Server

Lệnh update giúp bạn cập nhật dữ liệu có sẵn trong table, thường sẽ update theo một điều kiện khóa chính.

Ví dụ: Bạn vô tình nhập sai thông tin của sinh viên mã sô SV001 thì bạn sẽ xử lý lại bằng cách update lại thông tin theo mã số sinh viên đó.

Nếu bạn không nhập điều kiện thì nó sẽ update toàn bộ các record trong bảng.

Cú pháp lệnh Where trong SQL Server:

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

Trong đó các cặp column_name1 = expr1, column_name2 = expr2 chính là các cặp tên_field = value mà bạn muốn update. Không nhất thiết phải nhập tất cả các field trong table mà chỉ nhập vào những field mà bạn muốn update mà thôi.

Ví dụ bạn muốn update tên sinh viên và năm sinh thôi thì chỉ cần nhập vào:

ten_sinh_vien = 'tên của sinh viên',
nam_sinh = 'năm sinh'

Điều kiện condition sẽ giúp bạn lọc được đúng record muốn áp dụng. Nếu bạn không nhập conditon thì nó sẽ update cho toàn bộ các records đang có trong table.

2. Vài ví dụ với Where trong SQL Server

Hãy làm một vài ví dụ về cách update dữ liệu sẽ gúp bạn hiểu rõ hơn.

Update record theo khóa chính

Khóa chính là duy nhất trong table nên khi update theo điều kiện khóa chính sẽ ứng dụng cho một row duy nhất.

Giả sử có bảng emplyees như sau:

employees table png

Yêu cầu của bài toán là hãy thay đổi email của nhân viên có mã số 1056.

UPDATE employees 
SET 
    email = 'mary.patterson@classicmodelcars.com'
WHERE
    employeeNumber = 1056;

Update nhiều field

Để update nhiều field thì ta chỉ đặt chúng cách nhau bởi dấu phẩy trong mục SET nhé.

UPDATE employees 
SET 
    lastname = 'Hill',
    email = 'mary.hill@classicmodelcars.com'
WHERE
    employeeNumber = 1056;

Như trong ví dụ này mình đã update hai field, đó là lastname và email.

Kết hợp lệnh Replace

Giả sử bạn muốn thay đổi phần đuôi email của một nhân viên nào đó mà bạn chỉ nhớ tên email, tên job và mã văn phòng mà thôi. Lúc này bạn sẽ sử dụng nhiều lệnh ở Where và lệnh Replace.

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

Một số điều kiện khác

Lệnh Update trong SQL Server thực ra nó là câu lệnh riêng biệt, vì vậy bạn có thể kết hợp với Where với nhiều điều kiện khác nhau.

Dưới đây là cách kết hợp với IS NULL.

SELECT 
    customername, 
    salesRepEmployeeNumber
FROM
    customers
WHERE
    salesRepEmployeeNumber IS NULL;

Và IS NOT NULL.

SELECT 
     salesRepEmployeeNumber
FROM
    customers
WHERE
    salesRepEmployeeNumber IS NOT NULL;

Quá đơn giản phải không các bạn!

Như vậy là mình đã hướng dẫn xong cách sử dụng lệnh Update trong SQL Server. Đây là một trong những lệnh được sử dụng khá nhiều bởi nó giúp bạn cập nhật thông trong bảng một cách đơn giản. Hầy như 100% ứng dụng có sử dụng lệnh này.

Ngẫu nhiên