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é!
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.
Bạn nên đọc
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:


Cũ vẫn chất
-
Cách chặn từ khóa và Hashtag trên Twitter
Hôm qua -
Cách sao chép hoặc tạo bản sao toàn bộ trang tính trong Google Sheets
Hôm qua -
Hàm COUNTIFS, cách dùng hàm đếm ô theo nhiều điều kiện trong Excel
Hôm qua -
Sạc không dây là gì? Nó nhanh hơn hay chậm hơn sạc dây? Danh sách smartphone Android hỗ trợ sạc không dây
Hôm qua -
Các cách làm, tùy chỉnh trong bài sẽ giúp tăng tốc Windows 10 của bạn "nhanh như gió"
Hôm qua 6 -
Điểm ưu tiên, điểm khuyến khích, khu vực ưu tiên khi xét tuyển năm 2022
Hôm qua -
4 cách kiểm tra lịch sử giao dịch BIDV trên điện thoại, máy tính
Hôm qua -
Cách dùng Terabox lưu trữ với 1TB miễn phí
Hôm qua 5 -
PING là gì? Test PING như thế nào?
Hôm qua -
Dynamic System Updates là gì?
Hôm qua