Lệnh update trong SQL

287 lượt xem

Lệnh UPDATE trong SQL Server là công cụ mạnh mẽ và quan trọng trong lập trình cơ sở dữ liệu, cho phép bạn cập nhật dữ liệu trong các bảng một cách hiệu quả. Hiểu rõ cách sử dụng lệnh UPDATE giúp bạn quản lý dữ liệu tốt hơn và tối ưu hóa hiệu suất hệ thống. Bài viết này sẽ hướng dẫn chi tiết cách sử dụng lệnh UPDATE trong SQL Server, bao gồm các ví dụ cụ thể và các tình huống thực tế để bạn dễ dàng áp dụng vào công việc lập trình của mình.

Lệnh Update trong SQL 

Lệnh UPDATE trong SQL dùng để chỉnh sửa bản ghi hiện có trong bảng. Nó là Data Manipulation Language (DML). UPDATE chỉ tác động đến dữ liệu, không thay đổi cấu trúc bảng.

Hãy cẩn thận khi dùng lệnh UPDATE vì nó chỉ thao tác trên dữ liệu. Nếu không chỉ rõ các hàng cần chỉnh sửa, dữ liệu cả bảng có thể bị ảnh hưởng. Điều này có thể dẫn đến mất dữ liệu quan trọng hoặc cần chèn lại dữ liệu.

Sử dụng mệnh đề WHERE để chỉ định các bản ghi cần sửa đổi. Bằng cách này, bạn có thể cập nhật một hoặc nhiều hàng tùy vào điều kiện đặt ra.

Lệnh UPDATE hoạt động bằng cách dùng khóa trên mỗi hàng để xác định và chỉnh sửa dữ liệu trong bảng. Khi cập nhật một hàng, khóa sẽ được triển khai. Vì thế, bạn có thể thay đổi một hoặc nhiều hàng với một truy vấn duy nhất.

Cú pháp lệnh Update trong SQL.

Lệnh Update có cấu trúc:

UPDATE TEN_BANG
SET cot1 = gia_tri1, cot2 = gia_tri2...., cotN = gia_triN
WHERE [DIEU_KIEN];

Ví dụ về lệnh UPDATE trong SQL 

Update 1 bản ghi với điều kiện cụ thể

Trong ví dụ này, chúng ta sẽ sử dụng lệnh UPDATE để thay đổi giá trị của trường DIACHI cho nhân viên có ID là 3, từ “Hanam” thành “Hanoi”.

Bảng NHANVIEN ban đầu:

+----+------+-----+--------+--------+
|ID |TEN |TUOI |DIACHI |LUONG |
+----+------+-----+--------+--------+
|1 |Thanh |24 |Haiphong| 2000.00|
|2 |Loan |26 |Hanoi | 1500.00|
|3 |Nga |24 |Danang | 2000.00|
|4 |Mạnh |29 |Hue | 6500.00|
|5 |Huy |28 |Hatinh | 8500.00|
|6 |Cao |23 |HCM | 4500.00|
|7 |Lam |29 |Hanoi |15000.00|
+----+------+-----+--------+--------+
Câu lệnh UPDATE sẽ như sau : 
UPDATE NHANVIEN
SET DIACHI = 'Quangnam'
WHERE ID = 3;

Sau khi thực hiện lệnh trên, bảng NHANVIEN sẽ thay đổi như sau:

+----+------+-----+--------+--------+
|ID |TEN |TUOI |DIACHI |LUONG |
+----+------+-----+--------+--------+
|1 |Thanh |24 |Haiphong| 2000.00|
|2 |Loan |26 |Hanoi | 1500.00|
|3 |Nga |24 |Quangnam| 2000.00|
|4 |Mạnh |29 |Hue | 6500.00|
|5 |Huy |28 |Hatinh | 8500.00|
|6 |Cao |23 |HCM | 4500.00|
|7 |Lam |29 |Hanoi |15000.00|
+----+------+-----+--------+--------+

Update nhiều bản ghi 

Trong ví dụ về bảng nhân viên, nếu bạn muốn điều chỉnh mức lương cho các nhân viên có địa chỉ tại Hà Nội và lương hiện tại dưới 2000, bạn có thể sử dụng câu lệnh SQL sau để nâng lương của họ lên 3000:

UPDATE NHANVIEN 
SET LUONG = 3000
WHERE DIACHI = "Hanoi" AND LUONG < 2000;

Sau khi thực thi lệnh này, bảng dữ liệu sẽ được cập nhật như sau:

+----+-------+-----+--------+--------+
| ID | TEN | TUOI| DIACHI | LUONG |
+----+-------+-----+--------+--------+
| 1 | Thanh | 24 | Haiphong | 2000 |
| 2 | Loan | 26 | Hanoi | 3000 |
| 3 | Nga | 24 | Hanoi | 3000 |
| 4 | Mạnh | 29 | Hue | 6500 |
| 5 | Huy | 28 | Hatinh | 8500 |
| 6 | Cao | 23 | HCM | 4500 |
| 7 | Lam | 29 | Hanoi |15000 |
+----+-------+-----+--------+--------+

Câu lệnh trên sử dụng mệnh đề UPDATE để cập nhật mức lương và mệnh đề WHERE để chỉ định điều kiện lọc: nhân viên làm việc tại “Hanoi” và có lương thấp hơn 2000. Sau khi thực hiện lệnh, các nhân viên thỏa mãn điều kiện này sẽ có mức lương mới là 3000.

Update toàn bộ các bản ghi 

Nếu bạn muốn cập nhật tất cả các giá trị trong cột DIACHILUONG trong bảng NHANVIEN, bạn có thể bỏ qua mệnh đề WHERE. Chỉ cần sử dụng câu lệnh UPDATE như sau:

UPDATE NHANVIEN 
SET DIACHI = 'Hanoi', LUONG = 10000.00;

Khi lệnh này được thực hiện, bảng NHANVIEN sẽ trở thành:

+----+-------+-----+--------+--------+
| ID | TEN | TUOI| DIACHI | LUONG |
+----+-------+-----+--------+--------+
| 1 | Thanh | 24 | Hanoi |10000.00|
| 2 | Loan | 26 | Hanoi |10000.00|
| 3 | Nga | 24 | Hanoi |10000.00|
| 4 | Mạnh | 29 | Hanoi |10000.00|
| 5 | Huy | 28 | Hanoi |10000.00|
| 6 | Cao | 23 | Hanoi |10000.00|
| 7 | Lam | 29 | Hanoi |10000.00|
+----+-------+-----+--------+--------+

Lệnh trên sử dụng UPDATE để thay đổi toàn bộ giá trị của các bản ghi trong bảng. Tất cả các nhân viên sẽ có giá trị DIACHI là “Hanoi” và giá trị LUONG là 10000.00.

Nguyên tắc khi dùng lệnh Update trong thao tác CSDL.

Cơ sở dữ liệu được lưu trữ dưới nhiều bảng khác nhau, tuỳ thuộc vào độ phức tạp của CSDL đó. Khi xem hoặc cập nhật dữ liệu trong một biểu mẫu, báo cáo, hoặc kết quả trả về đều ở dạng bảng, khi cập nhật cần xem xét trên từng bảng và kiểm tra một cách kỹ lưỡng.

Mỗi bảng trong CSDL sẽ lưu trữ những vấn đề khác nhau, về thể loại hay mục đích, và vấn đề đó là duy nhất. Ví dụ như bảng lưu trữ tiền lương thưởng nhân viên công ty không thể nào chứa thông tin bán hàng, nếu trái với tính năng của chúng, công việc tìm kiếm và update sẽ trở nên khó khăn hơn.

Mỗi trường trong bảng được định dạng theo một kiểu dữ liệu nhất định, có thể là văn bản hay số học, nếu thao tác không đúng, hệ thống sẽ báo lỗi.

Xin lưu ý rằng, kiểu dữ liệu ảnh hưởng đến cập nhật hay thao tác, để việc Update được thuận tiện, dễ dàng hơn, bạn cần định dạnh chính xác cho CSDL của mình. Lệnh Update là một trong những lệnh cơ bản trong sử dụng ngôn ngữ SQL, và được sử dụng thường xuyên trong mọi ngành nghề của doanh nghiệp. Dù là người sành công nghệ hay không thì cũng rất cần cho quá trình học tập và làm việc của mình. Như đã nói ở trên, SQL được sử dụng khá phổ biến với câu lệnh đơn giản, dễ thực hiện, không thuộc câu lệnh vẫn có thể thực hành thao tác nhanh gọn được. Việc tìm hiểu về ngôn ngữ máy giúp bạn hiểu rõ về máy hơn và chủ động hơn trong các công tác của mình.

Lệnh UPDATE trong SQL là công cụ mạnh mẽ giúp quản lý và duy trì dữ liệu hiệu quả. Việc hiểu rõ và áp dụng đúng cú pháp của lệnh này sẽ giúp bạn cập nhật dữ liệu một cách chính xác và an toàn.