Computer >> Máy Tính >  >> Lập trình >> MySQL

MySQL DROP TABLE có loại bỏ hoàn toàn bảng hay chỉ cấu trúc?

DROP TABLE xóa hoàn toàn bảng và cũng xóa tất cả dữ liệu. Nếu bạn muốn loại bỏ tất cả dữ liệu hoàn toàn và muốn cấu trúc bảng, thì bạn có thể sử dụng lệnh TRUNCATE TABLE. Lệnh TRUNCATE sẽ tạo lại bảng.

Đầu tiên chúng ta hãy kiểm tra BẢNG DROP. Để làm được điều đó, trước tiên chúng ta sẽ tạo một bảng -

mysql> create table DemoTable
   (
   Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   Name varchar(20)
   );
Query OK, 0 rows affected (0.20 sec)

Chèn một số bản ghi vào bảng bằng lệnh chèn -

mysql> insert into DemoTable(Name) values('Larry');
Query OK, 1 row affected (0.07 sec)

mysql> insert into DemoTable(Name) values('Chris');
Query OK, 1 row affected (0.05 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select *from DemoTable;

Điều này sẽ tạo ra kết quả sau -

+----+-------+
| Id | Name  |
+----+-------+
| 1  | Larry |
| 2  | Chris |
+----+-------+
2 rows in set (0.00 sec)

Bây giờ, sử dụng lệnh DROP TABLE. Sau khi thực hiện lệnh DROP TABLE, dữ liệu sẽ bị xóa và sẽ không có bất kỳ cấu trúc bảng nào.

mysql> DROP TABLE DemoTable;
Query OK, 0 rows affected (0.18 sec)

Nếu bạn cố gắng hiển thị dữ liệu, bạn sẽ gặp lỗi sau -

mysql> select *from DemoTable;
ERROR 1146 (42S02): Table 'hb_student_tracker.DemoTable' doesn't exist

Bạn thậm chí sẽ không hiểu được cấu trúc bảng -

mysql> desc DemoTable;
ERROR 1146 (42S02): Table 'hb_student_tracker.DemoTable' doesn't exist

Hãy để chúng tôi triển khai lệnh TRUNCATE.

mysql> create table DemoTable
   (
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    FirstName varchar(20)
   );
Query OK, 0 rows affected (0.63 sec)

Chèn một số bản ghi vào bảng bằng lệnh chèn -

mysql> insert into DemoTable(FirstName) values('Chris');
Query OK, 1 row affected (0.08 sec)

mysql> insert into DemoTable(FirstName) values('Robert');
Query OK, 1 row affected (0.07 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select *from DemoTable;

Điều này sẽ tạo ra kết quả sau -

+----+-----------+
| Id | FirstName |
+----+-----------+
| 1  | Chris     |
| 2  | Robert    |
+----+-----------+
2 rows in set (0.00 sec)

Bây giờ, thực hiện lệnh TRUNCATE. Sau khi thực hiện lệnh TRUNCATE, dữ liệu sẽ bị xóa khỏi bảng và cấu trúc bảng sẽ được tạo lại.

mysql> TRUNCATE TABLE DemoTable;
Query OK, 0 rows affected (0.06 sec)

Bây giờ bạn sẽ không nhận được bất kỳ dữ liệu nào từ bảng nhưng cấu trúc bảng sẽ hiển thị -

mysql> select *from DemoTable;
Empty set (0.00 sec)

Sau đây là truy vấn để lấy cấu trúc bảng -

mysql> desc DemoTable;

Điều này sẽ tạo ra kết quả sau -

+-----------+-------------+------+-----+---------+----------------+
| Field     | Type        | Null | Key | Default | Extra          |
+-----------+-------------+------+-----+---------+----------------+
| Id        | int(11)     | NO   | PRI | NULL    | auto_increment |
| FirstName | varchar(20) | YES  |     | NULL    |                |
+-----------+-------------+------+-----+---------+----------------+
2 rows in set (0.01 sec)