sql语句中----删除表数据drop、truncate和delete的用法
2017-06-02 13:47 标签: sql语句
	虽然大番薯小编不建议大家去用命令删除数据库表中的东西,但是这些删除命令总有用的着的地方。
	说到删除表数据的关键字,大家记得最多的可能就是delete了
	然而我们做数据库开发,读取数据库数据.对另外的两兄弟用得就比较少了
	现在来介绍另外两个兄弟,都是删除表数据的,其实也是很容易理解的
	老大------drop
	出没场合:drop table  tb --tb表示数据表的名字,下同
	绝招:删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表,
	       例如:一个班就是一个表,学生就是表中的数据,学生的职务就是定义
	       drop table class,就是把整个班移除.学生和职务都消失
	比如下面TestSchool数据库中有两张表[Classes]表和[Teacher]表
	 

	当执行下面代码之后
	 

	Classes表就被清楚,一干二净! 删除得非常暴力,作为老大实至名归
	老二-----truncate
	出没场合:truncate table tb
	绝招:删除内容、释放空间但不删除定义。与drop不同的是,他只是清空表数据而已,他比较温柔.
	同样也是一个班,他只去除所有的学生.班还在,职务还在,如果有新增的学生可以进去,也可以分配上职务
	删除内容很容易理解,不删除定义也很容易理解,就是保留表的数据结构
	 

	上图就表现了:删除内容
	 

	执行语句之后,发现数据表的结构还在,也就是不删除定义
	至于释放空间,看下下面两幅图.你们就会明白的
	右图:Id列标识列,因之前delete过行数据,所以会出现标识列不连续(体现了delete删除是不释放空间的)
	经过truncate table Teacher 之后 再新增三条数据
	 

	右图:同样Id是标识列,发现插入数据的时候,标识列连续了(体现了truncate删除是释放空间)
	注意:truncate 不能删除行数据,要删就要把表清空
	老三-----delete
	出没场合:delete table tb   --虽然也是删除整个表的数据,但是过程是痛苦的(系统一行一行地删,效率较truncate低)
或 delete table tb where 条件
或 delete table tb where 条件
	绝招:删除内容不删除定义,不释放空间。三兄弟之中最容易欺负的一个
	然后关于delete的就不详细说明了,大家都懂的
	关于truncate的小小总结:
	truncate table 在功能上与不带 WHERE 子句的 delete语句相同:二者均删除表中的全部行。
	但 truncate 比 delete速度快,且使用的系统和事务日志资源少。
	delete 语句每次删除一行,并在事务日志中为所删除的每行记录一项。所以可以对delete操作进行roll back
	1、truncate 在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令Delete将被撤销,而 truncate 则不会被撤销。 
2、truncate 是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对 truncate 使用ROLLBACK命令。
3、truncate 将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过 truncate 操作后的表比Delete操作后的表要快得多。
4、truncate 不能触发任何Delete触发器。
5、当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。
6、不能清空父表
                    2、truncate 是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对 truncate 使用ROLLBACK命令。
3、truncate 将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过 truncate 操作后的表比Delete操作后的表要快得多。
4、truncate 不能触发任何Delete触发器。
5、当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。
6、不能清空父表
 本文由大番薯编辑发表。转载此文章须经大番薯同意,并请附上出处(大番薯)及本页链接。
原文链接:https://www.dafanshu.com/dfszx/rjjc/4097.html
                    
                    
                原文链接:https://www.dafanshu.com/dfszx/rjjc/4097.html
                                拼音加加输入法winpe免费绿色专用版
                                
                                                        
                        拼音加加输入法是一款拼音类的中文输入法,与整句输入风格的智能狂拼不同的是对词语的处理特性较好,对于初期学电脑打字的人而言是一款不错的中文输入法。

 u盘杀毒专家winpe免费绿色安装版
                                u盘杀毒专家winpe免费绿色安装版 7-Zip解压工具绿色专业免费版
                                7-Zip解压工具绿色专业免费版 三星3500EM-X01如何进入bios设置U盘为第一启动项
                                三星3500EM-X01如何进入bios设置U盘为第一启动项 微星p75笔记本怎么通过bios设置u盘启动
                                微星p75笔记本怎么通过bios设置u盘启动 联想拯救者 R9000X 2021笔记本怎么使用大番薯u盘启动盘安装win8系统
                                联想拯救者 R9000X 2021笔记本怎么使用大番薯u盘启动盘安装win8系统 惠普Probook 635 Aero G8笔记本一键u盘装系统教程
                                惠普Probook 635 Aero G8笔记本一键u盘装系统教程 Win11提示无法安全下载软件怎么办
                                Win11提示无法安全下载软件怎么办 Win7如何刷新DNS缓存
                                Win7如何刷新DNS缓存
 
                             
                             
                             
                             开机卡住显示press f1 to run setup怎么办
                                开机卡住显示press f1 to run setup怎么办
                             bios和uefi有什么区别
                                bios和uefi有什么区别
                             怎么设置硬盘ahci模式
                                怎么设置硬盘ahci模式
                             联想bios超级管理员密码设置技巧
                                联想bios超级管理员密码设置技巧
                             联想笔记本快速启动u盘技巧
                                联想笔记本快速启动u盘技巧
                             巧设bios关闭开机声音
                                巧设bios关闭开机声音
                             如何让鼠标的灯光随关机后熄灭
                                如何让鼠标的灯光随关机后熄灭