数据库删除操作

简介:

数据库删除操作

数据库中删除语句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版操作报错合集之在设置监控PostgreSQL数据库时,将wal_level设置为logical,出现一些表更新和删除操作报错,怎么办
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
6月前
|
SQL 资源调度 关系型数据库
实时计算 Flink版产品使用合集之源表的数据被删除后,目标数据库在重启服务后没有进行相应的删除操作,是什么原因
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
Java 数据库连接 数据库
Java 技术篇-java连接并操作数据库实例演示,执行查询、插入、更新和删除操作
Java 技术篇-java连接并操作数据库实例演示,执行查询、插入、更新和删除操作
344 0
Java 技术篇-java连接并操作数据库实例演示,执行查询、插入、更新和删除操作
|
SQL 数据库 Java
bboss persistent 实现数据库删除操作
4.6 删除操作4.6.1    普通删除操作    DBUtil dbUtil = new DBUtil();               try {            dbUtil.
607 0
|
14天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
29 1
|
16天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
30 4
|
1月前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
64 3
Mysql(4)—数据库索引
|
23天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
119 1
|
25天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
77 2
|
28天前
|
存储 关系型数据库 MySQL
MySQL vs. PostgreSQL:选择适合你的开源数据库
在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个。它们都有着强大的功能、广泛的社区支持和丰富的生态系统。然而,它们在设计理念、性能特点、功能特性等方面存在着显著的差异。本文将从这三个方面对MySQL和PostgreSQL进行比较,以帮助您选择更适合您需求的开源数据库。
104 4
下一篇
无影云桌面