数据库之删除表数据drop、truncate和delete的用法

时间:2022-09-06 16:58:08

数据库中删除表数据的关键字,最常用的可能就是delete了,另外其实还有drop和truncate两个关键字。

老大:drop

命令格式:drop table  tb  ---tb表示数据表的名字,下同。

说明:删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表。

老二:truncate

命令格式:drop table  tb

说明:删除内容、释放空间但不删除定义,也就是数据表的结构还在。与drop不同的是,它只是清空表数据而已,它比较温柔。

至于释放空间,看下面两幅图就会明白:

数据库之删除表数据drop、truncate和delete的用法

上图Id标识列中,因之前delete过行数据,所以会出现标识列不连续(体现了delete删除是不释放空间的)。

数据库之删除表数据drop、truncate和delete的用法

上图是经过truncate table Teacher 之后又新增了三条数据,发现Id标识列插入数据的时候,标识列连续了(体现了truncate删除是释放空间)。

注意:truncate 不能删除行数据,要删就要把表清空。

老三:delete

命令格式:delete table tb   或  delete table tb  where 条件

说明:删除内容不删除定义,不释放空间。其中,delete table tb 虽然也是删除整个表的数据,但是过程是痛苦的(系统一行一行地删,效率较truncate低)。

【关于truncate的总结】

1、truncate table 在功能上与不带 WHERE 子句的 delete语句相同,二者均删除表中的全部行,但 truncate 比 delete速度快,且使用的系统和事务日志资源少。

2、delete 语句每次删除一行,并在事务日志中为所删除的每行记录一项,所以可以对delete操作进行roll back。

3、truncate 在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令Delete将被撤销,而 truncate 则不会被撤销。

4、truncate 是一个DDL语言,向其他所有的DDL语言一样,它将被隐式提交,不能对 truncate 使用ROLLBACK命令。

5、truncate 将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过 truncate 操作后的表比Delete操作后的表要快得多。

6、truncate 不能触发任何Delete触发器。

7、当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。

8、不能清空父表。

数据库之删除表数据drop、truncate和delete的用法的更多相关文章

  1. sql语句中----删除表数据drop、truncate和delete的用法

    sql语句中----删除表数据drop.truncate和delete的用法 --drop drop table  tb   --tb表示数据表的名字,下同 删除内容和定义,释放空间.简单来说就是把整 ...

  2. 删除表数据drop、truncate和delete的用法

    说到删除表数据的关键字,大家记得最多的可能就是delete了 然而我们做数据库开发,读取数据库数据.对另外的两兄弟用得就比较少了 现在来介绍另外两个兄弟,都是删除表数据的,其实也是很容易理解的 老大- ...

  3. 2019.6.13_SQL语句中----删除表数据drop、truncate和delete的用法

    一.SQL中的语法 1.drop table 表名称                         eg: drop table  dbo.Sys_Test   2.truncate table 表 ...

  4. sql语句中----删除表数据drop、truncate和delete的用法(转)

    转载于:http://www.cr173.com/html/40708_1.html 说到删除表数据的关键字,大家记得最多的可能就是delete了 然而我们做数据库开发,读取数据库数据.对另外的两兄弟 ...

  5. mysql语句中----删除表数据drop、truncate和delete的用法

    程度从强到弱 1.drop  table tb        drop将表格直接删除,没有办法找回 2.truncate (table) tb       删除表中的所有数据,不能与where一起使用 ...

  6. mysql:删除表数据drop、truncate和delete的用法

    程度从强到弱 1.drop  table tb        drop将表格直接删除,没有办法找回 2.truncate (table) tb       删除表中的所有数据,不能与where一起使用 ...

  7. 关于从Oracle数据库中删除表数据

    1,删除表 drop 1.1 执行drop table table_name  语句 被 drop后的表被放在用户回收站(user_recyclebin)里,而没有被直接删除掉,回收站里的表可以被恢复 ...

  8. [转] sql 删除表数据的drop、truncate和delete用法

    删除表数据的关键字,大家记得最多的可能就是delete.然而,我们做数据库开发,读取数据库数据.对另外的drop.truncate用得就比较少了. 1 drop 出没场合:drop table  ta ...

  9. sql语句中----删除表数据的"三兄弟"

    说到删除表数据的关键字,大家记得最多的可能就是delete了 然而我们做数据库开发,读取数据库数据.对另外的两兄弟用得就比较少了 现在来介绍另外两个兄弟,都是删除表数据的,其实也是很容易理解的 老大- ...

随机推荐

  1. NPM 无法下载任何包的原因,解决方法

    前几天发现NPM 无法现在任何的包 通过npm i testPackage -ddd 发现 是卡在了 npm verb addRemoteTarball 这行,google后发现 是有多个tmp地址, ...

  2. LeetCode3 Longest Substring Without Repeating Characters

    题意: Given a string, find the length of the longest substring without repeating characters. Examples: ...

  3. javee学习-通过ServletContext对象实现数据共享

    1,设置值. ServletContext context = this.getServletConfig().getServletContext();//获得ServletContext对象 // ...

  4. Tomcat7.0配置

    Tomcat7.0下载地址:http://tomcat.apache.org/download-70.cgi 选择符合自己操作系统的版本即可(本机win8-64位系统),选择如下: http://11 ...

  5. css height:100%失效

    有时做移动端页面时,需要用到height:100%来控制,但是设置完后会发现,用百分比的高是不生效的. 经过上网浏览等查阅资料得知,是否可以使用百分比是根据父级对象定义的.所以解决方法就是在body和 ...

  6. Membership角色与权限管理

    安全性:成员资格与角色:验证与授权. 一.建数据库:在VS工具中用DOS环境执行ASPNET_REGSQL 二.配置程序访问数据库: > 在web.config之中加入 <connecti ...

  7. C&plus;&plus;空类中的默认函数

    定义一个空的C++类,例如 class Empty { } 一个空的class在C++编译器处理过后就不再为空,编译器会自动地为我们声明一些member function,一般编译过去就相当于 cla ...

  8. &lbrack;Hapi&period;js&rsqb; Extending the request with lifecycle events

    Instead of using middlware, hapi provides a number of points during the lifecycle of a request that ...

  9. PHP字符串替换str&lowbar;replace&lpar;&rpar;函数4种用法详解

    mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )该函数返回一个字符串 ...

  10. 整理CSS选择符

    1.星号选择器 ;; } 星号选择器将匹配页面里的每一个元素.很多开发者使用这个技巧将外边距和内边距重置为零.虽然在快速测试时这确实很好用,但我建议你永远不要再生产代码中使用它.它给浏览器带来大量不必 ...