Lệnh DROP TABLE hay DELETE TABLE trong SQL

Xóa bảng trong SQL được sử dụng khá nhiều. Thuật ngữ này còn được gọi là drop table trong SQL. Dưới đây là mọi điều bạn cần biết về xóa table 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..
Thứ Hai, 13/11/2023 17:23
4,19 👨 74.535
0 Bình luận
Sắp xếp theo
    ❖ Học SQL