数据库删除操作

简介:

数据库删除操作

数据库中删除语句Drop、Delete、Truncate的相同点和不同点的比较

用法:

Delete:用于删除表中的行(注:可以删除某一行;也可以在不删除表的情况下(即意味着表的结构、属性、索引完整)删除所有行) 
语法:删除某一行:Delete From 表名称 Where 列名称=值 
删除所有行: Delete From 表名称 或 Delete * From 表名称,实际是一行一行的删。

Drop:用于删除表(注:将表的结构、属性、索引也会被删除。)

Truncate:用于删除表内的数据(注:仅删除表内的数据,不删除表本身,相当于Delete语句不写Where子句一样,效率高于delete) 
语法:Truncate Table 表名称

数据库中删除语句的相同点和不同点的比较:

相同点:

1.truncate和不带where子句的delete,以及drop都能删除表内的数据

2.truncate和delete只删除表数据保留表结构

不同点:

1.truncate table tablename 
删除表内容释放表空间保留表结构(即:只删除表内的数据,不删除表本身。相当于Delete语句不写where子句一样),不使用事务处理即和事务无关

truncate 语句缺省情况下将空间释放到 minextents个 extent, 
除非使用reuse storage;truncate 会将高水线复位(回到最开始)。

2.delete table tablename [where子句] 
delete属于数据操作语言(DML),不能自动提交事务,需commit提交 
这个操作会放到 rollback segement 中,事务提交之后才生效; 
如果有相应的 trigger,执行的时候将被触发。 
delete 语句不影响表所占用的 extent,高水线(high watermark)保持原位置不动

3.drop table tablename  
drop属于数据定义语言(DDL)可以自动提交事务; 
drop 语句将删除表的结构被依赖的约束(constrain)、触发器(trigger)、索引(index)【删除表数据同时删除表结构】; 
依赖于该表的存储过程/函数将保留,但是变为 invalid 状态。 
drop 语句将表所占用的空间全部释放。 
删除数据的速度,一般来说: drop> truncate > delete

使用场合: 
当你不再需要该表时, 用 drop; 
当你仍要保留该表,但要删除所有记录时, 用 truncate; 
当你要删除部分记录时(always with a where clause), 用 delete.

注意: 对于有主外键关系的表,不能使用truncate而应该使用不带where子句的delete语句,由于truncate不记录在日志中,不能够激活触发器

相关文章
|
4天前
|
SQL 资源调度 关系型数据库
实时计算 Flink版产品使用合集之源表的数据被删除后,目标数据库在重启服务后没有进行相应的删除操作,是什么原因
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
Java 数据库连接 数据库
Java 技术篇-java连接并操作数据库实例演示,执行查询、插入、更新和删除操作
Java 技术篇-java连接并操作数据库实例演示,执行查询、插入、更新和删除操作
281 0
Java 技术篇-java连接并操作数据库实例演示,执行查询、插入、更新和删除操作
|
SQL 数据库 Java
bboss persistent 实现数据库删除操作
4.6 删除操作4.6.1    普通删除操作    DBUtil dbUtil = new DBUtil();               try {            dbUtil.
590 0
|
10天前
|
关系型数据库 MySQL API
实时计算 Flink版产品使用合集之可以通过mysql-cdc动态监听MySQL数据库的数据变动吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
12天前
|
关系型数据库 MySQL 数据库
docker MySQL删除数据库时的错误(errno: 39)
docker MySQL删除数据库时的错误(errno: 39)
68 0
|
5天前
|
存储 SQL 关系型数据库
【MySQL】数据库基础 -- 详解
【MySQL】数据库基础 -- 详解
|
12天前
|
Java 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口(下)
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口
52 0
|
12天前
|
Java 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口(上)
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口
59 0
|
5天前
|
存储 数据可视化 关系型数据库
【MySQL进阶之路 | 基础篇】创建和管理数据库
【MySQL进阶之路 | 基础篇】创建和管理数据库
|
5天前
|
关系型数据库 MySQL 数据库
如何在MySQL中查看已创建的数据库列表?
【5月更文挑战第22天】如何在MySQL中查看已创建的数据库列表?
15 1