Trong hướng dẫn này, bạn sẽ tìm hiểu cách sử dụng câu lệnh DELETE
trong SQL Server để xóa một hoặc nhiều bản ghi khỏi bảng.
Để xóa hoàn toàn một hoặc nhiều bản ghi khỏi bảng, bạn sử dụng câu lệnh DELETE
. Sau đây minh họa cú pháp của nó:
DELETE [ TOP ( expression ) [ PERCENT ] ]
FROM table_name
[WHERE search_condition];
Đầu tiên, bạn chỉ định tên của bảng cần xóa các bản ghi trong mệnh đề FROM
.
Ví dụ: câu lệnh sau sẽ xóa tất cả các bản ghi khỏi bảng target_table
:
DELETE FROM target_table;
Thứ hai, để chỉ định số lượng hoặc phần trăm của các bản ghi ngẫu nhiên sẽ bị xóa, bạn sử dụng mệnh đề TOP
.
Ví dụ: câu lệnh DELETE
sau sẽ xóa 10 bản ghi ngẫu nhiên khỏi bảng target_table
:
DELETE TOP 10
FROM target_table;
Vì bảng lưu trữ các bản ghi theo thứ tự không xác định, chúng tôi không biết bản ghi nào sẽ bị xóa nhưng chúng tôi biết chắc chắn rằng số hàng sẽ bị xóa là 10.
Tương tự, bạn có thể xóa 10 phần trăm các hàng ngẫu nhiên bằng cách sử dụng DELETE
câu lệnh sau :
DELETE TOP 10 PERCENT
FROM target_table;
Thứ ba, thực tế mà nói, bạn sẽ hiếm khi xóa tất cả các bản ghi khỏi một bảng mà chỉ một hoặc một vài bản ghi mà thôi. Trong trường hợp này, bạn cần chỉ định biểu thức search_condition
trong mệnh đề WHERE
để giới hạn số lượng bản ghi bị xóa.
Các bản ghi thỏa mãn biểu thức search_condition
sẽ bị xóa.
Mệnh đề WHERE
này là tùy chọn. Nếu bạn bỏ qua nó, câu lệnh DELETE
sẽ xóa tất cả các bản ghi khỏi bảng.
Hãy tạo một bảng mới để minh họa cho câu lệnh DELETE trong SQL Server.
Câu lệnh sau đây tạo một bảng có tên là production.product_history
với dữ liệu được sao chép từ bảng production.products
:
SELECT *
INTO production.product_history
FROM
production.products;
Truy vấn sau đây trả về tất cả các bản ghi từ bảng product_history
:
SELECT *
FROM production.product_history;
Như có thể thấy rõ trong đầu ra, chúng ta có tổng cộng 321 bản ghi.
Câu lệnh DELETE
sau sẽ xóa 21 bản ghi ngẫu nhiên khỏi bảng product_history
:
DELETE TOP (21)
FROM production.product_history;
Đây là thông báo của SQL Server:
(21 rows affected)
Nó có nghĩa là 21 bản ghi đã bị xóa.
Câu lệnh DELETE
sau sẽ xóa 5 phần trăm các bản ghi ngẫu nhiên khỏi bảng product_history
:
DELETE TOP (5) PERCENT
FROM production.product_history;
SQL Server đã đưa ra thông báo cho biết 15 bản ghi (300 x 5% = 15) đã bị xóa.
(15 rows affected)
Câu lệnh DELETE
sau đây sẽ xóa tất cả các sản phẩm có mẫu năm 2017:
DELETE
FROM
production.product_history
WHERE
model_year = 2017;
SQL Server thông báo đã xóa 75 sản phẩm:
(75 rows affected)
Câu lệnh DELETE
sau sẽ xóa tất cả các bản ghi khỏi bảng product_history
:
DELETE FROM production.product_history;
Lưu ý: nếu bạn muốn xóa tất cả các bản ghi khỏi một bảng lớn, bạn nên sử dụng câu lệnh TRUNCATE TABLE
sẽ nhanh hơn và hiệu quả hơn.
Trong hướng dẫn này, bạn đã học cách sử dụng câu lệnh DELETE
trong SQL Server để xóa một hoặc nhiều bản ghi khỏi bảng.
Bạn có thể vui lòng tắt trình chặn quảng cáo ❤️ để hỗ trợ chúng tôi duy trì hoạt động của trang web.
Trong hướng dẫn này, bạn sẽ tìm hiểu về GUID trong SQL Server và cách sử dụng hàm NEWID() để tạo giá trị GUID.
Trong hướng dẫn này, bạn sẽ học cách sử dụng kiểu dữ liệu DATETIMEOFFSET trong SQL Server để thao tác datetime với múi giờ.
Trong hướng dẫn này, bạn sẽ học cách lưu trữ thời gian trong ngày trong cơ sở dữ liệu bằng cách sử dụng kiểu dữ liệu TIME trong SQL Server.
Trong hướng dẫn này, bạn sẽ học cách sử dụng kiểu dữ liệu DATE trong SQL Server để lưu trữ dữ liệu ngày tháng trong một bảng.