Xóa dữ liệu bảng với mệnh đề delete from trong SQL

Với câu lệnh delete from bạn có thể xóa đi các dòng trong một bảng dữ liệu, cú pháp cơ bản như sau:

delete from TABLE_NAME
where CONDITION;

Mệnh delete from xóa dữ liệu trong bảng sql chứ không xóa cấu trúc bảng.

  • TABLE_NAME là tên bảng cần xóa dòng dữ liệu
  • CONDITION điều kiện xóa, dòng nào có dữ liệu thỏa mãn CONDITION (trả về true) sẽ bị xóa

Các dòng dữ liệu khi xóa là không thể phục hồi, nên viết và thi hành câu lệnh delete thật cẩn trọng.

Nếu thiếu mệnh đề WHERE tất cả các dòng trong bảng bị xóa. Tham khảo thêm về viết Mệnh đề Where trong SQL

delete sql

Ví dụ, xóa dòng có HoTen là 'Hoàng Đức Anh'

delete from Khachhang where HoTen='Hoàng Đức Anh';

Nhớ lưu lại dữ liệu trước khi thực hành

Ở đây có một file CSDL mẫu dạng SQLite, bạn có thể tải về nghiên cứu, thực hành: CSDL SQLite mẫu. Hoặc sử dụng trực tiếp công cụ Online: Chạy SQL

Xóa toàn bộ dữ liệu trong bảng SQL

Thiếu mệnh đề WHERE sẽ xóa toàn bộ dữ liệu của bảng (xóa dữ liệu, còn bảng vẫn tồn tại, nếu xóa bảng khỏi DB thực hiện lệnh drop table)

delete from table_name;
delete * from table_name;

Một số SQL Engine như MS SQLSERVER, MYSQL còn có mệnh đề TRUNCATE TABLE_NAME để xóa tất cả các dòng của bảng, nó cũng tương đương DELETE nhưng đồng thời khởi tạo lại transaction log (khi thêm dòng mới chỉ số tự động tăng bắt đầu từ 1)

Mệnh đề DELETE TABLE trong MySQL

Trong MySQL lệnh DELETE TABLE còn có thêm một số mở rộng, hãy xét vài trường hợp sau

Có thể chỉ định số dòng sẽ xóa bằng cách thêm mệnh đề LIMIT, trường hợp này cũng có thể thêm mệnh đề ORDER BY để xếp các dòng trước khi xóa

# xóa number_row dòng đầu tiên
delete from table_name [where condition] limit number_row;

# xóa number_row dòng có sắp xếp đầu tiên
delete from table_name [where condition]
order by col1, col2 ...
limit number_row;

Mệnh đề DELETE TABLE trong SQL Server

Trong SQL Server bạn cũng có thể xóa một số dòng đầu tiên:

# xóa number_row dòng đầu tiên
delete top(number_row) from table_name [where condition];

Đăng ký nhận bài viết mới