mysql怎么用命令删除数据?


当前第2页 返回上一页

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

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 语句清空 tb_student_course 表中的记录,SQL 语句和运行结果如下:

1

2

3

4

5

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查询时间数据

mysql中关于静态变量作用的具体分析

mysql数据库服务找不到怎么办

mysql中innodb和myisam的区别是什么?

linux下搭建mysql主从服务器

unbuntu如何彻底删除mysql

mysql如何设置单表大小

在centos 7安装mysql 5.7的详细教程

mysql慢查询有影响吗

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...