网站建设的最终目标,新网$网站优化,建设公司官网制作平台,做阿里巴巴网站卖货咋样MySQL 提供了 DELETE 和 TRUNCATE 关键字来删除表中的数据。下面主要讲解一下 TRUNCATE 关键字的使用。
TRUNCATE 关键字用于完全清空一个表。其语法格式如下#xff1a;
TRUNCATE [TABLE] 表名
其中#xff0c;TABLE 关键字可省略。
例 1
新建表 tb_student_course
TRUNCATE [TABLE] 表名
其中TABLE 关键字可省略。
例 1
新建表 tb_student_course插入数据并查询SQL 语句和运行结果如下
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: 0mysql SELECT * FROM tb_student_course;
------------
| id | name |
------------
| 1 | Java |
| 2 | MySQL |
| 3 | Python |
------------
3 rows in set (0.00 sec)
使用 TRUNCATE 语句清空 tb_student_course 表中的记录SQL 语句和运行结果如下
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)
TRUNCATE 和 DELETE 的区别
从逻辑上说TRUNCATE 语句与 DELETE 语句作用相同但是在某些情况下两者在使用上有所区别。
DELETE 是 DML 类型的语句TRUNCATE 是 DDL 类型的语句。它们都用来清空表中的数据。DELETE 是逐行一条一条删除记录的TRUNCATE 则是直接删除原来的表再重新创建一个一模一样的新表而不是逐行删除表中的数据执行数据比 DELETE 快。因此需要删除表中全部的数据行时尽量使用 TRUNCATE 语句 可以缩短执行时间。DELETE 删除数据后配合事件回滚可以找回数据TRUNCATE 不支持事务的回滚数据删除后无法找回。DELETE 删除数据后系统不会重新设置自增字段的计数器TRUNCATE 清空表记录后系统会重新设置自增字段的计数器。DELETE 的使用范围更广因为它可以通过 WHERE 子句指定条件来删除部分数据而 TRUNCATE 不支持 WHERE 子句只能删除整体。DELETE 会返回删除数据的行数但是 TRUNCATE 只会返回 0没有任何意义。
总结
当不需要该表时用 DROP当仍要保留该表但要删除所有记录时用 TRUNCATE当要删除部分记录时用 DELETE。
黑马程序员 MySQL数据库入门到精通从mysql安装到mysql高级、mysql优化全囊括