数据库表的删除方式有drop、delete和truncate各有什么特点

数据库表的删除方式有drop、delete和truncate各有什么特点,第1张

意义是不一样的,drop是删除表,使用drop之后表结构和表的数据都会被删除,truncate 和 delete是删除表里的数据,但不删除表本身,truncate 和 delete相比,truncate要快很多,但缺点就是不能回滚,包括索引等都会变成初始值,数据就无法恢复了。

虽然绿色资源网小编不建议大家去用命令删除数据库表中的东西,但是这些删除命令总有用的着的地方。

说到删除表数据的关键字,大家记得最多的可能就是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的就不详细说明了,大家都懂的

关于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、不能清空父表

(1)如果想清空表里面的内容可以使用:delete from KF;

(2)如果是想删除整个表可以使用:drop table KF。

SQL中删除表中的所有数据的方法:

1、TRUNCATE TABLE  删除表中的所有行,而不记录单个行删除 *** 作。

(1)语法:TRUNCATE TABLE name;

(2)参数 name 是要截断的表的名称或要删除其全部行的表的名称。

2、DELETE语句,属于计算机软件领域,是编程中实现删除功能的命令。

(1)DELETE语句:用于创建一个删除查询,可从列在 FROM 子句之中的一个或多个表中删除记录,且该子句满足 WHERE 子句中的条件,可以使用DELETE删除多个记录。

(2)语法:DELETE [table] FROM table WHERE criteria;

(3)说明:table参数用于指定从其中删除记录的表的名称。

(4)criteria参数为一个表达式,用于指定哪些记录应该被删除的表达式。

(5)可以使用 Execute 方法与一个 DROP 语句从数据库中放弃整个表。不过,若用这种方法删除表,将会失去表的结构。不同的是当使用 DELETE,只有数据会被删除;表的结构以及表的所有属性仍然保留,例如字段属性及索引。

扩展资料:

1、SQL 的支持标准:

(1)SQL 是1986年10 月由美国国家标准局(ANSI)通过的数据库语言美国标准,接着,国际标准化组织(ISO)颁布了SQL正式国际标准。

(2)1989年4月,ISO提出了具有完整性特征的SQL89标准,1992年11月又公布了SQL92标准,在此标准中,把数据库分为三个级别:基本集、标准集和完全集。

2、数据库对象——表格:

(1)数据库中的表与我们日常生活中使用的表格类似,它也是由行(Row) 和列(Column)组成的。列由同类的信息组成,每列又称为一个字段,每列的标题称为字段名。

(2)行包括了若干列信息项。一行数据称为一个或一条记录,它表达有一定意义的信息组合。一个数据库表由一条或多条记录组成,没有记录的表称为空表。每个表中通常都有一个主关键字,用于唯一地确定一条记录。

参考资料来源:

百度百科-结构化查询语言

百度百科-DELETE语句

百度百科-数据库对象

保留表,只删除数据:

truncate table mytable;

或者:

delete from mytable where 1 = 1 ;

commit;

删除表本身:

drop table mytable;

结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

1986年10月,美国国家标准协会对SQL进行规范后,以此作为关系式数据库管理系统的标准语言(ANSI X3 135-1986),1987年得到国际标准组织的支持下成为国际标准。不过各种通行的数据库系统在其实践过程中都对SQL规范作了某些编改和扩充。所以,实际上不同数据库系统之间的SQL不能完全相互通用。

以上就是关于数据库表的删除方式有drop、delete和truncate各有什么特点全部的内容,包括:数据库表的删除方式有drop、delete和truncate各有什么特点、sql语句中删除表数据drop、truncate和delete的用法、SQL中删除表中的内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10191485.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存