DELETE trong SQL



Lệnh DELETE được sử dụng để xóa các hàng từ một bảng. Nếu bạn muốn xóa một hàng cụ thể từ một bảng, bạn nên sử dụng mệnh đề WHERE.

DELETE FROM ten_bang [WHERE dieu_kien];

Nhưng nếu bạn không xác định mệnh đề WHERE, thì nó sẽ xóa tất cả hàng từ bảng.

DELETE FROM ten_bang;

Có một số khái niệm tương tự như lệnh DELETE, chẳng hạn như lệnh DROP và lệnh TRUNCATE nhưng chúng không thực sự giống nhau, dưới đây là một số điểm khác nhau giữa chúng.

Điểm khác nhau giữa lệnh DELETE và lệnh TRUNCATE

Có một điểm khác nhau nhỏ giữa lệnh DELETE và lệnh TRUNCATE. Lệnh DELETE chỉ xóa các hàng từ bảng dựa trên điều kiện đã được định nghĩa bởi mệnh đề WHERE hoặc xóa tất cả các hàng từ bảng nếu điều kiện này không được xác định. Nhưng nó không giải phóng bộ nhớ chứa bảng đó.

Trong khi đó, lệnh TRUNCATE xóa tất cả các hàng từ bảng và giải phóng bộ nhớ chứa bảng đó. Để xóa tất cả các hàng từ bảng SINHVIEN, truy vấn như sau:

TRUNCATE TABLE SINHVIEN; 

Điểm khác nhau giữa lệnh DROP và lệnh TRUNCATE

Khi bạn sử dụng lệnh DROP, nó xóa hàng của bảng cùng với định nghĩa bảng, để tất cả các mối quan hệ giữa bảng đó với bảng khác là không còn hiệu lực nữa. Khi bạn DROP một bảng:

  • Cấu trúc bảng sẽ bị xóa.

  • Mối quan hệ sẽ bị xóa.

  • Các ràng buộc về toàn vẹn dữ liệu sẽ bị xóa.

  • Quyền truy cập cũng sẽ bị xóa.

Nói cách khác, khi chúng ta sử dụng lệnh TRUNCATE, thì cấu trúc bảng vẫn như cũ, do đó chúng ta không phải mất công tạo lại và không phải đối mặt với các vấn đề trên.