中易网

sql 中关于delete drop alter

答案:2  悬赏:10  
解决时间 2021-01-18 13:37
sql 中关于delete drop alter
最佳答案
sql中delete,drop ,truncate都代表删除,但3者又有一些区别
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,再重新导入/插入数据

在实际应用中,三者的区别是明确的。
当你不再需要该表时, 用 drop;
当你仍要保留该表,但要删除所有记录时, 用 truncate;
当你要删除部分记录时(always with a WHERe clause), 用 delete.

而alter是对表结构的修改.
希望对你理解有帮助。
全部回答
delete 是对数据进行操作,对象是数据
drop是对数据库操作 对象是database
alter是修改,对表结构修改。如列名,表名,列的结构类型
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
北谢家村地址在哪,我要去那里办事
4.2x7.8+0.22x42怎么算?
草莓当年开花还去剪去
请教LG 47LD450-CA电视故障
欧美女明星方脸为什么那么好看? 真心觉得很
什么是每天必须用品
佑安宠物诊所安湖分院怎么去啊,我要去那办事
wow6.1法爷什么天赋输出高
怎么番茄汁榨出来是这样子颜色?
如何使用mount挂载一个windows的共享文件夹
我可以给社团带来什么
基坑排水采用井点降水方法时,滤管应埋在含水
电信的视频王卡可以看哪些视频啊?
比亚迪F0里的USB接口应该怎么用啊?有USB接口
精密小孔镗刀,镗13mm孔的,切削量1.5mm,镗无缝
推荐资讯
高中数学 线面垂直可以推出线线垂直吗? 有哪
储存了二十年的干灵芝还好吃吗?
女马男马是否婚配
《水浒传》二十回后的主要内容概括
tf眼影怎么有10g和6g的区别
上午被拦车杆砸了,下午头还疼去找他们能行么
新买的空调,怎么吹着没有以前感觉凉了
过年的年可以组什么词
在公墓一排中是中间好还是两头好
剑灵拿12段怎么打出20万伤害
三相1500w污水泵线路电阻有多大
(○+△)x0.2=3.6,o=△+△+△+△+△。o=( )
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?