Lệnh DELETE trong SQL

Đây là loạt bài hướng dẫn về SQL của Quantrimang.com. Ở các bài trước bạn đã làm quen với những lệnh SQL hết sức cơ bản như lệnh tạo cơ sở dữ liệu, lệnh tạo bảng, lệnh INSERT,… Trong bài viết này chúng ta sẽ tiếp tục với một truy vấn SQL được sử dụng rất nhiều, đó là DELETE.

Trong SQL, lệnh DETELE được sử dụng để xóa những bản ghi đang tồn tại trong một bảng. Bạn có thể sử dụng mệnh đề WHERE với lệnh DELETE để xóa hàng đã chọn, nếu không, tất cả các bản ghi sẽ bị xóa.

Cú pháp lệnh DELETE trong SQL

Cú pháp cơ bản của lệnh DELETE với mệnh đề WHERE sẽ như sau:

DELETE FROM ten_bang
 WHERE [dieu_kien];

Bạn có thể thêm nhiều điều kiện trong mệnh đề WHERE bằng cách sử dụng toán tử AND hoặc OR.

Ví dụ về DELETE trong SQL

Sử dụng bảng NHANVIEN có các bản ghi dưới đây:

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

Bây giờ ta sẽ sử dụng truy vấn DELETE dưới đây để xóa nhân viên có ID là 3.

SQL> DELETE FROM CUSTOMERS WHERE ID = 3;

Bây giờ, bảng NHANVIEN ban đầu sẽ trở thành:

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

Như đã nói ở phần đầu, nếu muốn xóa tất cả các bản ghi trong bảng NHANVIEN, bạn chỉ cần bỏ mệnh đề WHERE và sử dụng lệnh DELETE như dưới đây:

SQL> DELETE FROM CUSTOMERS;

Khi lệnh hoàn tất, bảng NHANVIEN sẽ không còn bất kỳ bản ghi nào nữa. Nhớ là, lệnh này chỉ xóa tất cả các hàng trong bảng, chú không xóa bảng; cấu trúc bảng, thuộc tính, chỉ mục vẫn còn nguyên.