delete用法解析

本文详细介绍了数据库中删除记录和清空表数据的方法,包括delete语句的使用,如何通过where子句指定删除条件,以及如何通过rollback回滚删除操作。还提到了truncate命令用于快速清空表,但其不可逆的特性需要谨慎使用。同时,强调了在有外键约束的情况下,使用truncate前需禁用约束。
摘要由CSDN通过智能技术生成

使用delete语句一次只能删除整行记录,不能删除某个字段。

(属于DML 语句会有提示是否删除)。
delete只会删除记录,不会删除表。
注:
如果要删除整张表,需要使用drop table命令。
如果要一次性清楚表中的数据,并且不需要撤销删除,可以使用truncate一次性对表数据进行清除。
*truncate 语句非常危险,属于DDL语句,一但执行不会提示,直接执行,且数据不能快闪恢复,应该说是没有办法恢复。最好不要用此语句删除表记录。
*

delete语法如下

delete [from] table [where condition];
table指定要删除的表名称,where中的condition表示被删除的行,由字段名、表达式、常数和比较操作符组成。
注意:如果在删除之后要撤销删除,可以显示的执行rollback语句撤销所作的更改。

先查询已建好的emp表。
在这里插入图片描述
删除名字为冬瓜的一条数据:
delete from emp where ename=‘冬瓜’;
在这里插入图片描述
如果想撤销删除,使用回滚方式回退表的删除
delete from emp where ename=‘冬瓜’;
rollback;
在这里插入图片描述
如果不指定where子句,将导致整张表记录被删除。删除的是记录,而不是表本身。
语句如下:delete from emp;

使用子查询删除记录

对于复杂的记录删除,可以使用子查询来删除基于另一个表中的行,比如要删除员工表中部门名称为销售部员工的记录,可以用如下删除:
delete from emp
where deptno = (select deptno from dept where dname=‘销售部’)

使用truncate清除表数据
除了使用delete删除表中的内容,还可以使用truncate语句,该语句会删除表中所有的行,并且释放该表所使用的存储空间。
truncate 属于DDL数据定义语言,与create table 等语句一样,它不具有撤销功能,一经调用,表中的数据便彻底被清除。使用时要谨慎。

语法如下;
truncate table table;
与delete语句相比,truncate 命令速度要快,原因如下;
truncate 语句不会激活表的删除触发器。
truncate属于DDL语句,不会产生撤销信息。
如果表时主外键关系的主表,则无法清除表的内容,必须在执行truncate语句之前禁用该约束。

  • 14
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值