.: Nguoicodonvn2008.info - Cõi lòng người cô đơn :.

https://www.nguoicodonvn2008.info

Lệnh DROP TABLE hay DELETE TABLE trong SQL

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.

SQL là kiến thức mà mọi lập trình viên cần nắm vững. Thực tế, học SQL không khó. Hãy bắt đầu làm quen từ những câu lệnh đơn giản nhất. Ở bài viết này là lệnh xóa bảng trong SQL.

Drop table trong SQL là một lệnh ngôn ngữ định nghĩa dữ liệu (Data Definition Language - DDL). Nó được dùng để loại bỏ định nghĩa của một bảng, dữ liệu, chỉ mục, trình kích hoạt, ràng buộc và đặc điểm quyền liên quan nếu có.

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..
 

Nguồn tin: Quantrimang.com:

Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây