mysql中清空表的方法:使用“TRUNCATE 表名”語(yǔ)句,可以完全清空一個(gè)表;刪減表的方法:使用“DROP TABLE 表名1 [ ,表名2, 表名3 …];”語(yǔ)句。
mysql清空表
MySQL 提供了 DELETE 和 TRUNCATE 關(guān)鍵字來(lái)刪除表中的數(shù)據(jù)。
TRUNCATE 關(guān)鍵字用于完全清空一個(gè)表。其語(yǔ)法格式如下:
TRUNCATE [TABLE] 表名
其中,TABLE 關(guān)鍵字可省略。
實(shí)例
新建表 tb_student_course,插入數(shù)據(jù)并查詢,SQL 語(yǔ)句和運(yùn)行結(jié)果如下:
mysql> CREATE TABLE `tb_student_course` ( -> `id` int(4) NOT NULL AUTO_INCREMENT, -> `name` varchar(25) NOT NULL, -> PRIMARY KEY (`id`) -> ); Query OK, 0 rows affected (0.04 sec) mysql> INSERT INTO tb_student_course(name) VALUES ('Java'),('MySQL'),('Python'); Query OK, 3 rows affected (0.05 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> SELECT * FROM tb_student_course; +----+--------+ | id | name | +----+--------+ | 1 | Java | | 2 | MySQL | | 3 | Python | +----+--------+ 3 rows in set (0.00 sec)
使用 TRUNCATE 語(yǔ)句清空 tb_student_course 表中的記錄,SQL 語(yǔ)句和運(yùn)行結(jié)果如下:
mysql> TRUNCATE TABLE tb_student_course; Query OK, 0 rows affected (0.04 sec) mysql> SELECT * FROM tb_student_course; Empty set (0.00 sec)
mysql刪減表
在 MySQL 數(shù)據(jù)庫(kù)中,對(duì)于不再需要的數(shù)據(jù)表,我們可以將其從數(shù)據(jù)庫(kù)中刪除。
在刪除表的同時(shí),表的結(jié)構(gòu)和表中所有的數(shù)據(jù)都會(huì)被刪除,因此在刪除數(shù)據(jù)表之前最好先備份,以免造成無(wú)法挽回的損失。
基本語(yǔ)法
使用 DROP TABLE 語(yǔ)句可以刪除一個(gè)或多個(gè)數(shù)據(jù)表,語(yǔ)法格式如下:
DROP TABLE [IF EXISTS] 表名1 [ ,表名2, 表名3 ...]
對(duì)語(yǔ)法格式的說(shuō)明如下:
-
表名1, 表名2, 表名3 …表示要被刪除的數(shù)據(jù)表的名稱。DROP TABLE 可以同時(shí)刪除多個(gè)表,只要將表名依次寫(xiě)在后面,相互之間用逗號(hào)隔開(kāi)即可。
-
IF EXISTS 用于在刪除數(shù)據(jù)表之前判斷該表是否存在。如果不加 IF EXISTS,當(dāng)數(shù)據(jù)表不存在時(shí) MySQL 將提示錯(cuò)誤,中斷 SQL 語(yǔ)句的執(zhí)行;加上 IF EXISTS 后,當(dāng)數(shù)據(jù)表不存在時(shí) SQL 語(yǔ)句可以順利執(zhí)行,但是會(huì)發(fā)出警告(warning)。
兩點(diǎn)注意:
-
用戶必須擁有執(zhí)行 DROP TABLE 命令的權(quán)限,否則數(shù)據(jù)表不會(huì)被刪除。
-
表被刪除時(shí),用戶在該表上的權(quán)限不會(huì)自動(dòng)刪除。
實(shí)例
選擇數(shù)據(jù)庫(kù) test_db,創(chuàng)建 tb_emp3 數(shù)據(jù)表,輸入的 SQL 語(yǔ)句和運(yùn)行結(jié)果如下所示。
mysql> USE test_db; Database changed mysql> CREATE TABLE tb_emp3 -> ( -> id INT(11), -> name VARCHAR(25), -> deptId INT(11), -> salary FLOAT -> ); Query OK, 0 rows affected (0.27 sec) mysql> SHOW TABLES; +--------------------+ | Tables_in_test_db | +--------------------+ | tb_emp2 | | tb_emp3 | +--------------------+ 2 rows in set (0.00 sec)
由運(yùn)行結(jié)果可以看出,test_tb 數(shù)據(jù)庫(kù)中有 tb_emp2 和 tb_emp3 兩張數(shù)據(jù)表。
我們來(lái)刪除數(shù)據(jù)表 tb_emp3,輸入的 SQL 語(yǔ)句和運(yùn)行結(jié)果如下所示:
mysql> DROP TABLE tb_emp3; Query OK, 0 rows affected (0.22 sec) mysql> SHOW TABLES; +--------------------+ | Tables_in_test_db | +--------------------+ | tb_emp2 | +--------------------+ 1 rows in set (0.00 sec)
執(zhí)行結(jié)果可以看到,test_db 數(shù)據(jù)庫(kù)的數(shù)據(jù)表列表中已經(jīng)不存在名稱為 tb_emp3 的表,刪除操作成功。
推薦教程:mysql視頻教程