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

Sự khác biệt giữa TRUNCATE và DELETE trong SQL là gì?

Câu trả lời

Trong SQL, các lệnh TRUNCATE và DELETE đề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à cách thức hoạt động khác nhau rất rõ rệt:

  1. DELETE:

    • Chức năng: DELETE được sử dụng để xóa một hoặc nhiều hàng trong bảng. Bạn có thể xác định điều kiện cụ thể cho các hàng cần xóa thông qua mệnh đề WHERE.
    • Loại lệnh: DELETE là một lệnh DML (Data Manipulation Language).
    • Ghi nhật ký: Mỗi hàng bị xóa bởi DELETE sẽ được ghi lại trong transaction log. Điều này có nghĩa là lệnh DELETE có thể rollback (hoàn tác) nếu được thực hiện trong một giao dịch.
    • Hiệu suất: DELETE thường chậm hơn so với TRUNCATE do phải ghi nhật ký và kiểm tra các ràng buộc dữ liệu trong quá trình xóa[1][2][3][4][5][6].
  2. TRUNCATE:

    • Chức năng: TRUNCATE được sử dụng để xóa tất cả các hàng trong một bảng một cách nhanh chóng và không cho phép sử dụng mệnh đề WHERE.
    • Loại lệnh: TRUNCATE là một lệnh DDL (Data Definition Language).
    • Ghi nhật ký: TRUNCATE không ghi chi tiết các hàng bị xóa vào transaction log, do đó không thể rollback. Việc này giúp TRUNCATE nhanh hơn DELE...
junior

junior

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

senior

Cái nào nhanh hơn, một truy vấn lớn hay nhiều truy vấn nhỏ trong sql?

middle

Thảo luận về INNER JOIN ON so với WHERE clause (với nhiều bảng trong FROM) trong SQL

senior

Các thao tác TRUNCATE và DELETE ảnh hưởng như thế nào đến cột Identity?

Bình luận

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

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