Lệnh DROP TABLE hay DELETE TABLE trong SQL

Xóa bảng trong SQL là một thao tác phổ biến. Tuy nhiên, dùng DROP TABLE hay DELETE TABLE trong SQL để xóa bảng? Hãy cùng nhau tìm hiểu nhé!

Xóa bảng trong SQL

Lập trình đang là ngành được nhiều người săn đón khi công nghệ ngày càng phát triển, nhu cầu sử dụng ứng dụng, phần mềm, chương trình thông minh ngày càng cao. Hiện ngành này cũng đang rất “khát” nhân lực có chuyên môn giỏi. Chính vì thế, nếu nắm vững kiến thức lập trình và biết vận dụng chúng vào thực tế, bạn sẽ không lo thiếu việc làm khi ra trường.

Lập trình là lĩnh vực có nhiều ngôn ngữ. Bạn chỉ cần chọn một ngôn ngữ phù hợp với mục tiêu để tìm hiểu. Dù học ngôn ngữ nào thì kiến thức về SQL đều cần thiết.

Delete table trong SQL là một trong số toán tử phổ biến nhất khi bạn phải xử lý database. Chính vì thế, hiểu cách dùng lệnh drop trong SQL thật sự cần thiết. Nếu không làm theo đúng quy trình hay biết những lưu ý, bạn có thể gặp phải sự cố mất dữ liệu.

Bài viết này sẽ cung cấp cho bạn thông tin chi tiết về cách dùng lệnh xóa bảng trong SQL, bao gồm những khái niệm cơ bản và cú pháp. Tất cả sẽ giúp bạn dùng lệnh drop hay delete table trong SQL mượt mà và hiệu quả.

Lưu ý:

  • Bạn nên thận trọng khi dùng lệnh này bởi khi xóa một bảng, tất cả thông tin có sẵn bên trong nó sẽ mất vĩnh viễn.
  • Để xóa bảng SQL trong database, bạn cần quyền ALTER (thay đổi) trên bảng được đề cập và quyền CONTROL (kiểm soát) trên sơ đồ bảng.
  • Mặc dù là lệnh ngôn ngữ định nghĩa dữ liệu, nó khác với lệnh TRUNCATE TABLE vì lệnh DROP hoàn toàn xóa bảng khỏi bộ nhớ.

Cú pháp cơ bản của lệnh xóa table trong SQL:

DROP TABLE [IF EXISTS] [database_name.][schema_name.]table_name;

Trong cú pháp này:

  • Đầu tiên, chọn tên của bảng được xóa.
  • Thứ hai, chọn tên của database trong bảng được tạo và tên của lược đồ mà bảng thuộc về. Tên database là tùy chọn. Nếu bỏ qua nó, lệnh drop table sẽ xóa bảng trong database được kết nối hiện tại.
  • Thứ ba, dùng If Exists để chỉ loại bỏ bảng nếu nó tồn tại.

Ví dụ về lệnh DROP TABLE

Trước tiên ta phải xác nhận rằng bảng NHANVIEN có tồn tại rồi mới thực hiện việc xóa bảng khỏi cơ sở dữ liệu, như ví dụ dưới đây:

SQL> DESC NHANVIEN;
+-----------+---------------+------+-----+---------+-------+
|   Field   |     Type      | Null | Key | Default | Extra |
+-----------+---------------+------+-----+---------+-------+
|   ID      | int(11)       | NO   | PRI |         |       |
|   TEN     | varchar(20)   | NO   |     |         |       |
|   TUOI    | int(11)       | NO   |     |         |       |
|   DIACHI  | char(25)      | YES  |     | NULL    |       |
|   LUONG   | decimal(18,2) | YES  |     | NULL    |       |
+-----------+---------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

Điều này có nghĩa là bảng NHANVIEN có tồn tại trong cơ sở dữ liệu, vì vậy, giờ chúng ta sẽ xóa nó bằng lệnh DROP TABLE:

SQL> DROP TABLE NHANVIEN; 
Query OK, 0 rows affected (0.01 sec)

Giờ bạn kiểm tra lại xem việc xóa bảng có thành công không, bằng cách dùng lại lệnh DESC:

SQL> DESC NHANVIEN; 
ERROR 1146 (42S02): Table 'QTM.NHANVIEN' doesn't exist

Nếu nhận được thông báo lỗi như trên nghĩa là bảng đã bị xóa khỏi cơ sở dữ liệu rồi đó.

Trong QTM.NHANVIEN thì NHANVIEN là tên bảng, còn QTM là cơ sở dữ liệu minh họa được dùng cho các ví dụ trong loạt bài này.

So sánh DELETE vs. TRUNCATE vs. DROP

DELETE

TRUNCATE

DROP

Đây là lệnh DML

Đây là lệnh DDL

Đây là lệnh DDL

Các điều kiện DELETE FROM tble_nameWHERE

TRUNCATE TABLE table_name;

DROP TABLE table_name;

Nó loại bỏ một hoặc nhiều bản ghi khỏi bảng

Nó loại bỏ tất cả các hàng trong database

Loại bỏ hoàn toàn bảng khỏi database

Không giải phóng không gian bảng được phân bổ

Nó loại bỏ hoàn toàn không gian được phân bổ cho bảng trên bộ nhớ

Loại bỏ hoàn hoàn không gian được phân bổ khỏi bộ nhớ

Nó chạy chậm hơn lệnh Drop và TRUNCATE bởi nó xóa từng hàng một dựa trên các điều kiện cụ thể.

Nó chạy nhanh hơn cả DELETE và TRUNCATE bởi nó xóa toàn bộ bản ghi cùng lúc mà không cần bất kỳ điều kiện nào.

Chạy nhanh hơn DELETE nhưng chậm hơn TRUNCATE. Nó xóa hàng trước, sau đó mới tới bảng ở database..

Những câu hỏi thường gặp về lệnh xóa bảng trong SQL

Sự khác biệt giữa DROP và DELETE table trong SQL?

Lệnh DELETE xóa các hàng khỏi bảng trong khi vẫn giữ nguyên cấu trúc bảng và có thể bao gồm mệnh đề WHERE để xóa có điều kiện. Lệnh DROP xóa hoàn toàn bảng, bao gồm cấu trúc, chỉ mục và ràng buộc, khỏi cơ sở dữ liệu.

DROP TABLE có chạy nhanh hơn DELETE?

Có, DROP TABLE nhanh hơn DELETE vì nó xóa trực tiếp toàn bộ bảng, bỏ qua các thao tác từng hàng. DELETE ghi lại nhật ký xóa từng hàng, khiến nó chậm hơn đối với các tập dữ liệu lớn.

Sự khác biệt giữa DROP TABLE và DELETE toàn bộ hàng là gì?

DROP TABLE xóa toàn bộ bảng, bao gồm cấu trúc và dữ liệu, vĩnh viễn. DELETE toàn bộ hàng xóa dữ liệu trong khi vẫn giữ nguyên cấu trúc bảng, cho phép sử dụng lại bảng cho dữ liệu trong tương lai.

Thứ Hai, 17/03/2025 15:22
4,111 👨 80.204
Xác thực tài khoản!

Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

Số điện thoại chưa đúng định dạng!
Số điện thoại này đã được xác thực!
Bạn có thể dùng Sđt này đăng nhập tại đây!
Lỗi gửi SMS, liên hệ Admin
0 Bình luận
Sắp xếp theo
❖
    ❖ Học SQL
    Chia sẻ
    Chia sẻ FacebookChia sẻ Twitter
    Đóng