MySQL表的增删改查(3)

本文详细介绍了MySQL中三种删除操作:delete用于删除行数据,drop删除整张表结构和数据,truncate仅删除表内数据但保留结构。讨论了它们的区别,包括影响范围、查询条件、执行效率和数据恢复能力。
摘要由CSDN通过智能技术生成


以后创建的表里需要有三个字段(阿里编码规约):
1.id (主键编号);
2.createtime(创建时间);
3.updatetime(修改时间);

1.MySQL删除操作

1.1 delete删除(DML数据 操作语言)

(删除行数据,但表的结构是存在的)
语法:

delete from 表名 (条件);

删除单条数据
delete from world where name = '李存孝';
在这里插入图片描述
在实际中,不建议使用名字删除,因为名字可能会重复

删除全部数据
delete from 表名;
注意事项:可以添加条件

1.2 drop删除(DDL数据定义语言)

【删除整张表(所有行数据+表结构都被删除)】
语法:

drop table 表名;

主语事项:不能添加where查询条件、限制、比较等。

1.3 truncate删除(不能加查询条件)

(不会删除表结构,只会删除表中的所有数据)
语法:

truncate [table] 表名;

总结(区别):

1. 删除影响范围:
drop(表结构+数据)>truncate(删除所有数据)>=delete(删除所有或部分数据)**
2. 查询条件:
delete可以添加查询条件,其他的删除指令不能添加查询条件。
3. 命令的类型:
drop 属于DDL,delete属于DML,而truncate属于DDL。

注:truncate的执行原理:
1.重新创建了一个student表;
2.将原来的student表删除了。
delete的执行原理
在InnoDB数据库引擎下,delete并不是真正的吧数据删除掉了,而是给数据打了一个删除标签,表示当前的数据已经被删除了。
4.数据恢复不同
delete数据是可以恢复的,而truncate、drop数据不可以被恢复

如果autocommit=1的情况下,delete能否被恢复?
可以恢复的,删除日志update table 表名 set iddel=0;执行时间:执行SQL取反操作就可以恢复表数据。
delete删除不要慌,运维如果知道删除的时间节点是可以恢复的(前提条件是开启了数据库的日志记录)。
如果关闭了数据库的日志记录,可以提高数据库的执行性能,对于数据丢失不敏感的系统,可以关闭日志。
5. 执行效率
drop>truncate>delete

数据量越大,上面的执行效率差距也越大

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值