sql语句delete的用法(SQL删除语句DROP、TRUNCATE、 DELETE 的区别)
类别:数据库 浏览量:633
时间:2021-10-11 00:52:37 sql语句delete的用法
SQL删除语句DROP、TRUNCATE、 DELETE 的区别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 test 或者 TRUNCATE test;
truncate table 命令将快速删除数据表中的所有记录,但保留数据表结构。这种快速删除与 delete from 数据表的删除全部数据表记录不一样,delete 命令删除的数据将存储在系统回滚段中,需要的时候,数据可以回滚恢复,而truncate 命令删除的数据是不可以恢复的。
相同点
truncate 和不带 where 子句的 delete, 以及 drop 都会删除表内的数据。
不同点:
- 1. truncate 和 delete 只删除数据不删除表的结构(定义) ,drop 语句将删除表的结构被依赖的约束(constrain), 触发器(trigger), 索引(index); 依赖于该表的存储过程/函数将保留, 但是变为 invalid 状态。
- 2.delete 语句是 dml, 这个操作会放到 rollback segement 中, 事务提交之后才生效; 如果有相应的 trigger, 执行的时候将被触发。 truncate, drop 是 ddl, 操作立即生效, 原数据不放到 rollback segment 中, 不能回滚。 操作不触发 trigger。
- 3.delete 语句不影响表所占用的 extent, 高水线(high watermark)保持原位置不动。 显然 drop 语句将表所占用的空间全部释放 。 truncate 语句缺省情况下见空间释放到 minextents 个 extent, 除非使用 reuse storage; truncate会将高水线复位(回到最开始)。
- 4.速度:一般来说: drop > truncate > delete 。
- 5.安全性: 小心使用 drop 和 truncate, 尤其没有备份的时候。否则哭都来不及。
最后
使用上, 想删除部分数据行用 delete, 注意带上 where 子句。 回滚段要足够大。
想删除表, 当然用 drop。
想保留表而将所有数据删除。如果和事务无关, 用 truncate 即可。 如果和事务有关, 或者想触发 trigger, 还是用 delete。
如果是整理表内部的碎片, 可以用 truncate 跟上 reuse stroage, 再重新导入/插入数据。
以上就是SQL删除语句DROP、TRUNCATE、 DELETE 的区别的详细内容,更多关于sql删除语句的资料请关注开心学习网其它相关文章!
您可能感兴趣
- mysql事务未提交会锁表吗(Mysql事务中Update是否会锁表?)
- MySql开启远程连接
- sql server中随机函数(SQL SERVER 2012新增函数之逻辑函数IIF)
- mysql死锁是什么原因(MySQL的MaxIdleConns不合理,会变成短连接的原因)
- mysql8.0.25安装教程(Mysql8.0.17安装教程推荐)
- navicat如何连接sql数据库(Navicat 连接SQLServer数据库图文步骤)
- sql server2008脚本执行(在Sql Server中调用外部EXE执行程序引发的问题)
- sqlserver数据库技术及应用教程(SQLServer2019 数据库的基本使用之图形化界面操作的实现)
- mysql出现锁表的原因(导致MySQL做全表扫描的几种情况)
- mysql将字符串转换成整数(MYSQL字符串强转的方法示例)
- sqlserver基础数据类型(SQL Server中T-SQL 数据类型转换详解)
- SQL Server数据库应用中有用的几个工具
- windowsmysql服务在哪里(解决windows service 2012阿里云服务器在搭建mysql时缺少msvcr100.dll文件的问题)
- mysql随机获取数据
- mysql数值类型图解(详解mysql持久化统计信息)
- sparksql项目实战(Spark SQL的整体实现逻辑解析)
- 手机QQ与小米路由器在一起 明天揭晓,敬请期待(手机QQ与小米路由器在一起)
- 小米音乐与 QQ 音乐合作,便捷迁移会员(小米音乐与QQ音乐合作)
- 小米推出米兔儿童电话手表奥特曼版,799 元,支持微信 QQ(小米推出米兔儿童电话手表奥特曼版)
- 贾怀胤唱《白龙马》 炸场 了 没想到京剧还能这么玩(贾怀胤唱白龙马)
- 白龙马的改编学生版,快来看看(白龙马的改编学生版)
- 萌娃唱《白龙马》走红,那生动的小表情,网友直呼 简直是戏精(萌娃唱白龙马走红)
热门推荐
- laravel服务提供者应用场景(Laravel如何创建服务器提供者实例代码)
- python多线程多进程运行场景(Python多线程同步---文件读写控制方法)
- dedecms标签怎么用(dedecms建站设置自动内链的方法)
- Asp.net页面传值乱码
- python代码如何进行切片索引(Python读取Pickle文件信息并计算与当前时间间隔的方法分析)
- 使用vue组件开发项目(Vue记事本实例详解)
- dede标签调用方法(DEDE热门tag,DEDE首页digg,DEDE随机热门关键字调用方法)
- python测试websocket接口(Python如何爬取实时变化的WebSocket数据的方法)
- dedecms标签怎么用(浅析DedeCMS GBK版安装sphinx全文索引无法查询无结果的解决方法)
- html5实现上传图片预览
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9