drop、truncate和delete的区别】的更多相关文章

注意:这里说的delete是指不带where子句的delete语句 相同点 truncate和不带where子句的delete, 以及drop都会删除表内的数据 不同点: 1. truncate和 delete只删除数据不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态. 2.delete语句是dml,这个操作会放到rollback segement中,…
注意:这里说的delete是指不带where子句的delete语句 相同点: truncate和不带where子句的delete, 以及drop都会删除表内的数据 不同点: truncate和 delete只删除数据不删除表的结构(定义) drop语句将删除表的结构.被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的 存储过程/函数将保留,但是变为invalid状态. delete语句是dml,这个操作会放到rollback segement中,事务…
(1)   DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作.TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的.并且在删除的过程中不会激活与表有关的删除触发器.执行速度快. (2)   表和索引所占空间.当表被TRUNCATE 后,这个表和索引所占用的空间会恢复到初始大小,而DELETE操作不会减少表或索引所占用的空间.drop语句将表所占用的空间全释放掉.…
drop.truncate和delete的区别 本文转载自: https://www.cnblogs.com/zhizhao/p/7825469.html     (1)DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作. TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的.并且在删除的过程中不会激活与表有关的删除触发器.执行速度快. (2)表和索引所占空间.…
mysql中drop.truncate和delete的区别 (1)DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作. TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的.并且在删除的过程中不会激活与表有关的删除触发器.执行速度快. (2)表和索引所占空间. 当表被TRUNCATE 后,这个表和索引所占用的空间会恢复到初始大小, DELETE操作不会减少表或索引…
今天在整理mysql数据库笔记的时候突然想到一个问题,就是drop.truncate和delete的区别,乍一看三者都是有删除的功能,但是具体来看还是有很多区别的.我先把这三个的作用简单说一下,有前辈已经把他们之间的区别详细整理出来了,文末有链接,请自行查看. delete delete是DML(data maintain language),这个操作会被放到rollback segment中,事务提交之后才会生效,如果有相应的触发器trigger,那么执行的时候可以被触发 执行delete操作…
主要介绍了SQL删除语句DROP.TRUNCATE. DELETE 的区别,帮助大家更好的理解和学习sql语句,感兴趣的朋友可以了解下 DROP: 1 DROP TABLE test; 删除表test,并释放空间,将test删除的一干二净. TRUNCATE: 1 TRUNCATE test; 删除表test里的内容,并释放空间,但不删除表的定义,表的结构还在. DELETE: 1.删除指定数据 删除表test中年龄等于30的且国家为US的数据 1 DELETE FROM test WHERE…
昨天被问到truncate与delete的区别,truncate没用过,回去百度了一下,才知道还有这个一种语句. truncate table命令将快速删除数据表中的所有记录(保留数据表结构).这种快速删除与delete from 数据表的删除全部数据表记录不一样,delete命令删除的数据将存储在系统回滚段中,需要的时候,数据可以回滚恢复,而truncate命令删除的数据是不可以恢复的.咱们做一个测试: 1.建一个带有自增字段的表,加入100万数据 2.分别用TRUNCATE和DELETE删除…
DML(data manipulation language): 它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言 DDL(data definition language): DDL比DML要多,主要的命令有CREATE.ALTER.DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用 sql crud 基本语句使用 CREATE DATAB…
在mysql和oracle数据库中delete与truncate都是可以用来对数据进行删除操作,但是二者又有些不同. 主要有以下几个区别: 区别一: 根据sql语言分类来说,delete属于DML语言,也就是数据操作语言,而truncate属于DDL语言,也就是数据定义语言. 区别二: delete不仅可以删除表中的数据,还可以删除基于真实表创建的视图中的数据.truncate则只能删除表中的数据,不能作用于视图. 区别三: 在数据库删除数据时,delete可以根据需要进行删除,也就是delet…
近日在删除数据时,发现除了常用的Delete & Drop语句之外,还有Truncate也是与删除数据相关的,针对上述三种有进行简单的比较与整理 用法 drop 用法:drop table 表名 drop是DDL,会隐式提交,所以,不能回滚,不会触发触发器. drop语句删除表结构及所有数据,并将表所占用的空间全部释放. drop语句将删除表的结构所依赖的约束,触发器,索引,依赖于该表的存储过程/函数将保留,但是变为invalid状态. truncate 清空表中的数据,用法:truncate…
(1)DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作. TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的.并且在删除的过程中不会激活与表有关的删除触发器.执行速度快. (2)表和索引所占空间. 当表被TRUNCATE 后,这个表和索引所占用的空间会恢复到初始大小, DELETE操作不会减少表或索引所占用的空间. drop语句将表所占用的空间全释放掉. (3…
转载:http://www.runoob.com/sql/sql-delete.html DROP: DROP test; 删除表test,并释放空间,将test删除的一干二净. TRUNCATE: TRUNCATE test; 删除表test里的内容,并释放空间,但不删除表的定义,表的结构还在. DELETE: 1.删除指定数据 删除表test中年龄等于30的且国家为US的数据 DELETE FROM test WHERE age=30 AND country='US'; 2.删除整个表 仅删…
(1)DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行回滚操作. TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的.并且在删除的过程中不会激活与表有关的删除触发器.执行速度快. (2)表和索引所占空间. 当表被TRUNCATE后,这个表和索引所占用的空间会恢复到初始大小: DELETE操作不会减少表或索引所占用的空间: DROP语句将表所占用的空间全释放掉. (3)一般…
原文出处:http://blog.csdn.net/ws0513/article/details/49980547 (1)DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作. TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的.并且在删除的过程中不会激活与表有关的删除触发器.执行速度快. (2)表和索引所占空间. 当表被TRUNCATE 后,这个表和索引所占用的…
DROP: DROP TABLE test; 删除表test,并释放空间,将test删除的一干二净. TRUNCATE: TRUNCATE test; 删除表test里的内容,并释放空间,但不删除表的定义,表的结构还在. DELETE: 1.删除指定数据 删除表test中年龄等于30的且国家为US的数据 DELETE FROM test WHERE age=30 AND country='US'; 2.删除整个表 仅删除表test内的所有内容,保留表的定义,不释放空间. DELETE FROM…
1.Drop DROP TABLE test; 删除表test,并释放空间,将test删除的一干二净.(结构也被完全删除) 2.Truncate TRUNCATE test; 删除表test里的内容,并释放空间,但不删除表的定义,表的结构还在. 3.Delete 1>.删除指定数据 删除表test中年龄等于30的且国家为US的数据 AND country='US'; 2>.删除整个表 仅删除表test内的所有内容,保留表的定义,不释放空间. DELETE FROM test 或者 TRUNCA…
(1)DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作. TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的.并且在删除的过程中不会激活与表有关的删除触发器.执行速度快. (2)表和索引所占空间. 当表被TRUNCATE 后,这个表和索引所占用的空间会恢复到初始大小, DELETE操作不会减少表或索引所占用的空间. drop语句将表所占用的空间全释放掉. (3…
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行.但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少. DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项. TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放. TRUNCATE,DELETE,DROP放在一起比较: TRUNCATE TABLE:删除内容.释放空间但不删除定义…
我们都知道truncate table可以用来删除整个表的内容,它与delete后面不跟where条件的效果是一样.但除此之外,我们还清楚它们之间有其它的区别吗?本章我们将一起讨论truncate与delete区别. 我们先看一下truncate table的说明:删除表中的所有行,而不记录单个行删除操作.TRUNCATE TABLE在功能上与没有WHERE子句的DELETE语句相同:但是,TRUNCATE TABLE速度更快,使用的系统资源和事务日志资源更少. truncate table的语…
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行.但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少. DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项.TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放.TRUNCATE,DELETE,DROP放在一起比较:TRUNCATE TABLE:删除内容.释放空间但不删除定义.DE…
1.drop:能对table和view 用法:  drop table [is exists] 表1,表2,表3....: ①drop是DDL中删除表的操作,会删除表结构和所有数据,并释放空间. ②并且因为事务的特性,DDL会进行隐式提交,所以不能进行事务回滚 ③drop语句将删除表的结构所依赖的约束,触发器,索引,依赖于该表的存储过程.函数将保留,但是变为invalid状态.  2.truncate:只能对table 用法: truncate table 表名 ①truncate是DDL中删除…
首先truncate是DDL语句,而delete是DML语句. truncate的删除比delete快很多,尤其是表数据量大的时候,原因是truncate执行过程中不产生undo,所以truncate也无法再回滚.而delete在commit之前肯定是可以回滚的. truncate的另一个特性是会将表的高水位线重新归零,delete不会这样做,这也是truncate的一个优点,全表扫描仅搜索位于高水位线之下的存储块中的数据行.这对于全表扫描性能具有很大影响. truncate有一个副作用,如果一…
Truncate 语法 TRUNCATE TABLE     [ { database_name .[ schema_name ] . | schema_name . } ]     table_name [ ; ] Truncate Table TableName 与 DELETE 语句相比,TRUNCATE TABLE 具有以下优点: 所用的事务日志空间较少. DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一个项. TRUNCATE TABLE 通过释放用于存储表数据的数据…
1.一个表要删除全部数据如何实现:①delete,②truncate EG:删除a表中的所有数据: CREATE TABLE `b` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL DEFAULT '', PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=16711412 DEFAULT CHARSET=utf8; 快速导入数据: insert into a(n…
truncate table : 删除内容,释放空间(表中数据会被删除,但不会进入oracle回收站,直接删除),不删除定义 delete table : 删除内容,不释放空间(表中数据虽被删除,但是数据所用空间依然被占用),不删除定义 删除定义的是drop table 同时truncate会比delete执行要快,跟释放空间有关,truncate后数据直接删除 truncate table删除数据是通过释放表空间中存储数据页来删除数据的 delete table先是一行一行删除,并且会记录所删…
/* DML -- 数据操纵预言: insert/delete/update */ #一: 插入语句 /* 语法1: insert into 表名(列名,..,列名....) values(值1,值2,...),(值1,值2,...),(值1,值2,...); 语法2: insert into 表名 set 列名1=值1,列名2=值2,....; */ /*二: 修改语句 1.修改单表的记录 语法: update 表名 set 列1=新值1,列2=新值2,列2=新值2... where 筛选条件…
TRUNCATE 命令用法 语法    TRUNCATE TABLE name 参数  name 是要截断的表的名称或要删除其全部行的表的名称. 注释 TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行.但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少. DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项.TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,…
Delete删除的数据可以通过日志文件进行恢复 Truncate Table删除的数据不能进行恢复 Delete删除时,标识列取值保留原使用中最大值 Truncate Table删除时,标识列恢复到最初设置的标识种子值 Delete删除数据时是一条记录一条记录删除的 Truncate Table删除数据时,是以数据页的形式删除的…
清空表 truncate table [表名]: delete from [表名]: 注: truncate是整体删除(速度较快), delete是逐条删除(速度较慢). truncate不写服务器log,delete写服务器log,也就是truncate效率比delete高的原因. truncate不激活trigger(触发器),但是会重置Identity(标识列.自增字段),相当于自增列会被置为初始值,又重新从1开始记录,而不是接着原来的ID数.而delete删除以后,Identity依旧是…