Drop 、Delete、Truncate 的区别是什么?

DROP 删除表结构和数据,truncate 和 delete 只删除数据

truncate 操作,表和索引所占用的空间会恢复到初始大小;delete 操作不会减小表或索引所占用的空间;drop 操作释放表或索引的占用空间。

truncate 和 drop 是 DDL,操作立即生效,delete 是 DML,手动提交操作才生效。delete 操作可以结合 where 条件,并且删除操作会被记录到日志,后续可以回滚恢复。

一般速度上来说,drop>truncate>delete

truncate 只能对 table,delete 可以是 table 和 view

示例

MogDB=# select * from test_city;

id | city

----+-----------

1 | 上海

2 | 北京

3 | 广州

4 | 猋

5 | 巭

6 | 孬

7 | 舙

8 | 畾

9 | 皛

10 | 龘

11 | 孨

12 | 毳

13 | 雥

14 | 飍

15 | 飝

(15 rows)

MogDB=# Delete from test_city where city = '上海';

DELETE 1

MogDB=# select * from test_city;

id | city

----+-----------

2 | 北京

3 | 广州

4 | 猋

5 | 巭

6 | 孬

7 | 舙

8 | 畾

9 | 皛

10 | 龘

11 | 孨

12 | 毳

13 | 雥

14 | 飍

15 | 飝

(14 rows)

MogDB=# TRUNCATE test_city;

TRUNCATE TABLE

MogDB=# select * from test_city;

id | city

----+------

(0 rows)

MogDB=# drop table test_city;

DROP TABLE

Drop 、Delete、Truncate的区别是什么的更多相关文章

  1. drop,delete,truncate区别

    drop,delete,truncate区别 drop-->删除少量信息   eg:drop table 表名: delete-->删除某些数据   eg:delete from 表名: ...

  2. oracle 中删除表 drop delete truncate

    oracle 中删除表 drop delete truncate   相同点,使用drop delete truncate 都会删除表中的内容 drop table 表名 delete from 表名 ...

  3. drop,delete,truncate 的区别

    (1)DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作. TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独 ...

  4. drop,delete,truncate

    drop,truncate是ddl,数据库定义语言,不执行事务 delete是dml,数据库操作语言,有事务 drop:删除内容和定义,释放空间 delete:删除内容,不删除定义,不释放空间 tru ...

  5. postgresql之 drop & delete & truncate

    官网:https://www.postgresql.org/docs/8.1/sql-droptable.html Name DROP TABLE -- remove a table Synopsis ...

  6. drop delete truncate 区别

    http://jingyan.baidu.com/article/8275fc8693e11846a03cf696.html

  7. delete/truncate/drop table的区别以及锁在这里的角色

    数据库删除语句 Drop/Delete/Truncate比较 Delete :删除数据表中的行(可以删除某一行,也可以在不删除数据表的情况下删除所有行). 删除某一行:Delete from 数据表名 ...

  8. MySQL---drop, delete, truncate的区别

    drop, delete, truncate的区别 删除内容 drop直接删除整个表, 包含表结构和数据; truncate删除表中数据, 表结构及其列, 约束, 索引等不变, 再插入时自增id又从1 ...

  9. mysql之drop、truncate和delete的区别

    今天在整理mysql数据库笔记的时候突然想到一个问题,就是drop.truncate和delete的区别,乍一看三者都是有删除的功能,但是具体来看还是有很多区别的.我先把这三个的作用简单说一下,有前辈 ...

  10. 面试突击55:delete、drop、truncate有什么区别?

    在 MySQL 中,删除的方法总共有 3 种:delete.truncate.drop,而三者的用法和使用场景又完全不同,接下来我们具体来看. 1.delete detele 可用于删除表的部分或所有 ...

随机推荐

  1. 【Azure 应用服务】App Service - 在修改应用服务计划的页面中,为什么无法查看到同一个资源组下面的其他应用服务计划(App Service Plan)呢?

    问题描述 在App Service的门户上,可以通过"Change App Service Plan"来改变当前App Service所属的应用服务计划(App Service P ...

  2. 使用beyond compare或kompare作为git的对比、合并工具

    两种方法 方法1: 直接使用命令 # 执行下面命令,参看支持对比合并工具名称,比如bc就是指beyond compare(收费软件,推荐使用开源的kompare) $ git difftool --t ...

  3. C++ //类模板与函数模板的区别 //1.类模板没有自动类型推导的使用方式 //2.类模板子模板参数中可以有默认参数

    1 //类模板与函数模板的区别 2 //1.类模板没有自动类型推导的使用方式 3 //2.类模板子模板参数中可以有默认参数 4 5 #include <iostream> 6 #inclu ...

  4. nginx设置访问账号密码

    第一:为kibana加上了用户登陆访问 第二:不暴露服务器上5601端口,只开放80端口即可.这对服务器的安全也是一个很大的保护. 接下来我们就开始配置nginx与kibana. 一.配置nginx ...

  5. MySQL联接表总结笔记

    SQL最强的的工呢过之一就是能够在护具检索查询的执行中联结表,联结表利用SQL的select能执行的最重要的操作,很好的理解联结及其语法学习SQL的一个重要的组成部分. 在能够有效的使用联结前,必须了 ...

  6. node开发命令行脚本 / commander

    1. 脚本第一行添加 #!/usr/bin/env node // index.js #!/usr/bin/env node console.log('hello world') 2. package ...

  7. Proxmark3入门指南

    Proxmark3笔记 --Proxmark3完全入门指南 写在前面 这里所有针对扇区.区块的计数都是从0开始算 一些需要知道的知识 为了能看懂笔记,需要能回答以下问题 ID卡和IC卡主要的区别是什么 ...

  8. day08-Axios

    Axios 1.基本说明 Axios是一个基于promise的网络请求库,作用于node.js和浏览器中.它是 isomorphic 的 (即同一套代码可以运行在浏览器和node.js中).在服务端它 ...

  9. C++ 赋值操作和assign()的区别(转自stack overflow)

    https://stackoverflow.com/questions/19735395/stl-assignment-operator-vs-assign-member-function assig ...

  10. 博客调整为MarkDown和图床外链、配置Gitee作为图床

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...