数据库删除语句 Drop、Truncate和Delete比较

数据库删除语句 Drop、Truncate和Delete比较Dropdrop 可用于删除数据库 dropdatabase 数据库名称 删除数据表 use 数据库名称 droptable 数据表 1 名称 数据表 2 名 或删除数据表字段 use 数据库名称 altertable 数据表名称 dropcolumn 字段名 列名称 值得注意的是 drop 语句将删除表的结构 被依赖的约束 constrain 触发器 trigger 索引 ind

Drop

drop可用于删除数据库(drop database 数据库名称)、删除数据表( use 数据库名称 drop table 数据表1名称,数据表2名)或删除数据表字段(use 数据库名称 alter table 数据表名称 drop column 字段名(列名称))。

值得注意的是:drop语句将删除表的结构、被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.

Truncate

Truncate用于删除数据表中的数据,仅数据表中的数据,不删除表( truncate table 数据表名称)。

Delete

Delete :删除数据表中的行,可以删除某一行,也可以在不删除数据表的情况下删除所有行(删除某一行:Delete from 数据表名称 where 列名称=值)。

三者的区别

从删除速度上区分:

就删除数据的速度而言,一般由快到慢:drop> truncate > delete

从语言类型上区分:

delete语句是数据库操作语言(dml),这个操作会放到 rollback segement 中,事务提交之后才生效;如果有相应的 trigger,执行的时候将被触发。

truncate、drop 是数据库定义语言(ddl),操作立即生效,原数据不放到 rollback segment 中,不能回滚,操作不触发trigger。

(核心SQL有四部分:数据定义语言DDL、数据操作语言DML、数据控制语言DCL、嵌入式SQL语言)

从删除内容上:

truncate和 delete只删除数据不删除表的结构(定义)

drop删除内容和定义,并释放空间。执行drop语句,将使此表的结构一起删除。

truncate和delete:

delete语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存,以便进行进行回滚操作。

TRUNCATE TABLE 通过释放用于存储表数据的数据页来删除数据,并且在事务日志中只记录页释放,数据不可回滚。

truncate语句执行以后,id标识列还是按顺序排列,保持连续;

delete语句执行后,ID标识列不连续

多学一点:

alter table 表名 change 原列名 新列名  类型; –修改表的列属性名

alter table 表名 modify 列名 类型 ;  –修改表的类类型

alter table 表名 drop 列名;  –删除表的某一列

alter table 表名 add  列名 类型;–添加某一列

alter table 表名 rename 新表名; –修改表名

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/212358.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午8:13
下一篇 2026年3月18日 下午8:14


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号