Scroll to top
Câu lệnh UPDATE trong SQL

Câu lệnh UPDATE trong SQL

ByYuto 14/10/2024 02:21
8min read

Cách sử dụng câu lệnh UPDATE trong SQL với hướng dẫn chi tiết bao gồm ví dụ minh họa cụ thể, giúp bạn nắm vững kỹ thuật và áp dụng dễ dàng trong dự án của mình.

Trong quá trình phát triển ứng dụng, việc chỉnh sửa, cập nhật dữ liệu là một phần không thể thiếu. Bài viết này sẽ hướng dẫn bạn cách sử dụng câu lệnh UPDATE trong SQL cùng với ví dụ cụ thể giúp bạn dễ dàng áp dụng vào dự án của mình.

Cú pháp của lệnh UPDATE trong SQL

Cập nhật một bản ghi

Để cập nhật dữ liệu trong một bảng, bạn sử dụng cú pháp sau:

sql
Copy
1
2
3
UPDATE ten_bang
SET cot1 = gia_tri_moi1, cot2 = gia_tri_moi2, ...
WHERE dieu_kien;

Ví dụ: Cập nhật địa chỉ cho nhân viên có ID là 1:

sql
Copy
1
2
3
UPDATE NhanVien
SET tuoi = 31, diachi = 'Nha Trang'
WHERE id = 1;

Trong ví dụ này, chúng ta cập nhật tuổi và địa chỉ của nhân viên có ID là 1 trong bảng NhanVien.

Trước khi cập nhật:

id ten tuoi diachi
1 Nguyen Van A 30 Ha Noi

Sau khi cập nhật:

id ten tuoi diachi
1 Nguyen Van A 31 Nha Trang

Cập nhật nhiều bản ghi cùng lúc

Bạn cũng có thể cập nhật nhiều bản ghi cùng một lúc, có thể thêm sử dụng điều kiện phù hợp trong câu lệnh WHERE.

Ví dụ: Tăng tuổi của tất cả nhân viên lên 1:

Dữ liệu ban đầu:

id ten tuoi diachi
1 Nguyen Van A 30 Nha Trang
2 Le Thi B 25 Da Nang
3 Tran Van C 28 Hai Phong
sql
Copy
1
2
UPDATE NhanVien
SET tuoi = tuoi + 1;

Sau khi cập nhật:

id ten tuoi diachi
1 Nguyen Van A 31 Nha Trang
2 Le Thi B 26 Da Nang
3 Tran Van C 29 Hai Phong

Lưu ý: Nếu bạn bỏ qua câu lệnh WHERE, tất cả bản ghi trong bảng sẽ được cập nhật!

Câu lệnh UPDATE nâng cao

Cập nhật dữ liệu dựa trên dữ liệu từ bảng khác

Bạn có thể cập nhật dữ liệu trong một bảng dựa trên dữ liệu từ bảng khác bằng cách sử dụng câu lệnh UPDATE kết hợp với JOIN.

Ví dụ: Cập nhật địa chỉ cho nhân viên dựa trên thông tin từ bảng DiaChiMoi:

Bảng NhanVien:

id ten tuoi diachi
1 Nguyen Van A 31 Nha Trang
2 Le Thi B 26 Da Nang
3 Tran Van C 29 Hai Phong

Bảng DiaChiMoi:

nhanvien_id diachi_moi
1 Lâm Đồng
2 Thái Bình
sql
Copy
1
2
3
UPDATE NhanVien
JOIN DiaChiMoi ON NhanVien.id = DiaChiMoi.nhanvien_id
SET NhanVien.diachi = DiaChiMoi.diachi_moi;

Trong ví dụ này, địa chỉ của nhân viên sẽ được cập nhật dựa trên bảng DiaChiMoi nơi chứa nhanvien_id và địa chỉ mới tương ứng của nhân viên.

Sau khi cập nhật:

id ten tuoi diachi
1 Nguyen Van A 31 Lâm Đồng
2 Le Thi B 26 Thái Bình
3 Tran Van C 29 Hai Phong

Sử Dụng Điều Kiện Phức Tạp Trong Câu Lệnh WHERE

Ví dụ 1: Cập nhật trạng thái công việc cho nhân viên dựa vào số giờ làm việc và hiệu suất

Dữ liệu ban đầu:

id ten sogio_lam hieusuat trangthai
1 Nguyen Van A 158 49 Hoạt động
2 Le Thi B 162 85 Hoạt động
sql
Copy
1
2
3
UPDATE NhanVien
SET trangthai = 'Xem xét lại'
WHERE sogio_lam < 160 OR hieusuat < 50;

Sau khi cập nhật:

id ten sogio_lam hieusuat trangthai
1 Nguyen Van A 158 49 Xem xét lại
2 Le Thi B 162 85 Hoạt động

Ở đây, chúng ta cập nhật trạng thái công việc của nhân viên thành Xem xét lại nếu họ làm việc dưới 160 giờ mỗi tháng hoặc hiệu suất làm việc dưới 50%.

Ví dụ 2: Cập nhật lương cho nhân viên dựa trên tuổi và vị trí công việc

Dữ liệu ban đầu:

id ten tuoi chucvu luong
1 Nguyen Van A 42 Quản lý 1000
2 Le Thi B 32 Nhân viên 800
3 Le Minh Thien Toan 25 Lao công 200
sql
Copy
1
2
3
4
5
6
7
UPDATE NhanVien
SET luong = CASE
    WHEN tuoi >= 40 AND chucvu = 'Quản lý' THEN luong * 1.2
    WHEN tuoi >= 30 AND chucvu = 'Nhân viên' THEN luong * 1.15
    ELSE luong * 1.1
END
WHERE tuoi >= 30 AND (chucvu = 'Quản lý' OR chucvu = 'Nhân viên');

Sau khi cập nhật:

id ten tuoi chucvu luong
1 Nguyen Van A 42 Quản lý 1200
2 Le Thi B 32 Nhân viên 920
3 Le Minh Thien Toan 25 Lao công 200

Trong ví dụ trên, chúng ta sử dụng một điều kiện WHERE phức tạp kết hợp với một biểu thức CASE trong SET để cập nhật lương. Lương được tăng theo tỷ lệ phần trăm dựa trên tuổi và vị trí công việc của nhân viên. Cụ thể ở ví dụ trên, câu lệnh WHERE sẽ chỉ lấy những nhân viên có chức vụ là 'Quản lý' hoặc 'Nhân viên' vào diện được tăng lương.


Sử dụng điều kiện phức tạp trong câu lệnh WHERE của lệnh UPDATE không chỉ giúp bạn cập nhật dữ liệu một cách chính xác hơn mà còn phản ánh sự linh hoạt và thông minh trong quản lý cơ sở dữ liệu. Bằng cách kết hợp các điều kiện để lọc dữ liệu cần cập nhật, bạn có thể thực hiện những thay đổi cụ thể, đúng mục tiêu, và phù hợp với nhu cầu của mình.

Đánh giá bài viết: 4.9/5 (28 đánh giá)
Bạn chưa đánh giá

Bình luận

Author
hoclaptrinh.io author
Tác giả:Yuto Yasunaga

Mình là một full stack developer, tốt nghiệp và làm việc tại Nhật Bản. Trang web này là nơi mình tổng hợp, đúc kết và lưu trữ lại những kiến thức trong quá trình học và làm việc liên quan đến IT.
Hy vọng những bài viết ở website này sẽ có ích cho bạn.