Câu hỏi phỏng vấn SQL
Câu hỏi

Nêu sự khác biệt giữa lệnh TRUNCATE và lệnh DELETE trong SQL?

Câu trả lời

Lệnh TRUNCATEDELETE trong SQL đều được sử dụng để xóa dữ liệu khỏi bảng, nhưng chúng có những đặc điểm và hành vi khác nhau rất đáng chú ý:

1. Định nghĩa và Loại Lệnh

  • DELETE: Là một lệnh thuộc loại DML (Data Manipulation Language), cho phép xóa các bản ghi cụ thể từ một bảng. Bạn có thể sử dụng điều kiện WHERE để lọc và xóa chỉ những bản ghi thỏa mãn điều kiện đó.
  • TRUNCATE: Là một lệnh thuộc loại DDL (Data Definition Language), được sử dụng để xóa sạch tất cả các bản ghi trong một bảng một cách nhanh chóng và không thể hoàn tác (trong hầu hết các RDBMS).

2. Sử dụng Tài Nguyên và Khóa

  • DELETE: Xóa từng bản ghi một và ghi lại mỗi hành động xóa trong nhật ký giao dịch, do đó nó cần nhiều khóa và tài nguyên hơn.
  • TRUNCATE: Xóa dữ liệu bằng cách giải phóng các trang dữ liệu mà không ghi chi tiết từng bản ghi đã xóa vào nhật ký giao dịch, do đó nó nhanh hơn và ít tốn tài nguyên hơn.

3. WHERE Clause

  • DELETE: Có thể sử dụng WHERE clause để xác định các bản ghi cụ thể cần xóa.
  • TRUNCATE: Không sử dụng WHERE clau...
middle

middle

Gợi ý câu hỏi phỏng vấn

expert

Liệt kê một số nhược điểm của Hash Index trong SQL?

senior

B-trees Index trong SQL Server hoạt động như thế nào?

middle

Làm thế nào để xóa các giá trị trùng lặp trong một bảng SQL?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào