Câu lệnh SQL DELETE xóa một hàng từ bảng cơ sở dữ liệu. Bạn có thể dùng mệnh đề WHERE chỉ định bản ghi nào nên bị xóa. Nếu không chỉ định WHERE, mọi hàng trong bảng sẽ bị xóa.
Xóa hàng là thao tác phổ biến trong SQL. Ví dụ: người dùng quyết định xóa tài khoản trên trang web. Điều này yêu cầu xóa dữ liệu của họ từ cơ sở dữ liệu người dùng.
Bạn có thể dùng câu lệnh SQL DELETE để xóa bất kỳ hàng nào từ bảng. Trong hướng dẫn này, chúng ta sẽ thảo luận cách thực hiện lệnh SQL delete row trên cơ sở dữ liệu.
Ôn tập bản ghi SQL
Cơ sở dữ liệu gồm một chuỗi bảng, mỗi bảng lưu trữ bản ghi riêng.
Ví dụ: cơ sở dữ liệu công ty có thể bao gồm bảng nhân viên, nhà cung cấp, phòng ban, lương, v.v. Mỗi bảng bao gồm bản ghi riêng — các mục riêng lẻ trong bảng. Bảng lương có thể bao gồm danh sách thanh toán cho nhân viên.
Để thêm bản ghi mới vào bảng, dùng câu lệnh SQL INSERT. Cho phép thêm bản ghi chứa giá trị cụ thể vào cột chọn.
Ví dụ lệnh SQL INSERT:
INSERT INTO company_departments (name, department_id) VALUES ('Payroll', 5);
Nhưng nếu muốn xóa hàng từ bảng? Dùng câu lệnh DELETE row.
SQL DELETE ROW từ bảng
Câu lệnh SQL DELETE xóa một hàng hoặc nhiều hàng từ bảng. Câu lệnh nhận hai tham số. Thứ nhất, chỉ định tên bảng câu lệnh DELETE tập trung. Thứ hai (tùy chọn), chỉ định điều kiện phải đáp ứng trước khi bản ghi bị xóa.
Cú pháp câu lệnh DELETE:
DELETE FROM ten_bang WHERE dieu_kien_duoc_dap_ung;
Câu lệnh DELETE không có lệnh "undo". Một khi bản ghi bị xóa khỏi cơ sở dữ liệu, không thể khôi phục.
Mệnh đề WHERE cho phép chỉ định bản ghi nào nên bị xóa. Cú pháp giống mệnh đề SQL WHERE với lệnh khác như INSERT hoặc UPDATE.
Câu lệnh DELETE không xóa bảng. Nó chỉ xóa bản ghi bên trong bảng đó.
Hãy xem ví dụ SQL DELETE.
Ví dụ xóa hàng SQL
Nếu muốn xóa chỉ bản ghi khớp điều kiện nhất định, chỉ định mệnh đề WHERE. Giả sử quyết định phòng Marketing hợp nhất vào Sales.
Bảng hiện chứa bản ghi:
| name | title | department_id |
|---|---|---|
| John | Marketing | 2 |
| Rebecca | Sales | 3 |
Dùng truy vấn DELETE xóa phòng Marketing:
DELETE FROM company_departments WHERE title = 'Marketing';
Kiểm tra bằng SELECT. Tập kết quả:
| name | title | department_id |
|---|---|---|
| Rebecca | Sales | 3 |
Bản ghi Rebecca không bị ảnh hưởng vì chỉ xóa người có title = "Marketing". Nhưng bản ghi John biến mất vì John làm việc cho Marketing.
Trong trường hợp này, xóa một bản ghi. Nếu có nhiều nhân viên Marketing, bản ghi của họ cũng bị xóa.
Ví dụ xóa TẤT CẢ hàng SQL
Giả sử muốn xóa TẤT CẢ bản ghi trong bảng company_departments vì tái cấu trúc công ty. Dùng lệnh:
DELETE FROM company_departments;
Truy vấn xóa tất cả hàng trong bảng company_departments. Vì không chỉ định điều kiện nào phải đáp ứng trước khi xóa. Nếu bỏ mệnh đề WHERE khỏi bất kỳ lệnh DELETE nào, nó sẽ xóa tất cả hàng trong bảng.
Truy vấn bảng company_departments tìm nhân viên title Marketing, thấy không còn bản ghi:
| name | title | department_id |
|---|---|---|
(0 hàng)
Kết luận
Câu lệnh SQL DELETE xóa hàng từ cơ sở dữ liệu. Lệnh này xóa tất cả hàng trừ khi bạn chỉ định mệnh đề WHERE. Mệnh đề WHERE cho phép kiểm soát bản ghi nào bị xóa.
Trong hướng dẫn này, chúng ta thảo luận cơ bản cách hàng được tạo trong SQL và cách dùng DELETE xóa hàng từ bảng SQL. Cũng thảo luận cách xóa bản ghi dựa trên điều kiện và xóa toàn bộ dữ liệu trong bảng.
Bạn muốn tìm hiểu thêm về SQL? Xem hướng dẫn How to Learn SQL hoàn chỉnh để có danh sách tài nguyên học tập hàng đầu và khóa học trực tuyến.