Oracle删除列操作:逻辑删除和物理删除
概念
逻辑删除:逻辑删除并不是真正的删除,而是将表中列所对应的状态字段(status)做修改操作,实际上并未删除目标列数据或恢复这些列占用的磁盘空间。比如0是未删除,1是删除。在逻辑上数据是被删除了,但是数据本身还在数据库中,只是不进行对外提供了,逻辑删除的本质是修改操作(将is_delete的值进行0和1之间的修改)。
例如:电脑的回收站使用的原理就是逻辑删除。删除的文件进入回收站的本质只是在操作系统的帮助下对文件加上了某种标记,资源管理器对这种含有标记的文件不显示。当回收站恢复的时候,即移除这种标记。当清空回收站的时候进行的是物理删除。一般的商城网站使用的是逻辑删除来操作数据库。
物理删除:使用delete、truncate、drop语句删除数据,物理删除就是把数据从硬盘中删除,释放空间,缩小体积,对性能的提升有帮助
II.缺点
物理删除是从根源上面删除,几乎无法恢复数据
物理删除会造成主键不连续,分页查询数据慢
III. 应用的地方
核心的业务表不用物理查询
实操
仍然使用之前建立的数据表进行测试,直达链接:Oracle中新建数据表的两种方法(单击进入文章)
逻辑删除语法:

--逻辑删除一列
alter table JT_CS.STUINFO_01 set unused (ENROLDATE) ONLINE;
--逻辑删除两列
alter table JT_CS.STUINFO_01 set unused (CLASSNO, ENROLDATE);
可以从DBA_UNUSED_COL_TABS视图查看每个表中未使用的列的数量:
select * from DBA_UNUSED_COL_TABS;

完成此操作后,再次查询表JT_CS.STUINFO_01将不再看到刚刚逻辑删除的列。如果以后有时间物理删除列,可以使用以下方法完成,语法如下:
--语句是对未使用的列唯一允许的操作。它从表中物理删除未使用的列并回收磁盘空间。
alter table table_name drop unused columns ONLINE ; --该子句导致在处理指定数量的行后应用检查点,在本例中为 1000。
--检查点减少了删除列操作期间累积的undo日志量,以避免undo空间的潜在耗尽。
alter table table_name drop unused columns checkpoint XX;
物理删除语法:
--物理删除单列
alter table table_name drop column column_name;
--物理删除多列
alter table table_name drop (column_name1, column_name2);
例如:现在,我要物理删除数据表JT_CS.STUINFO_01里的SEX、AGE两列字段和单独删除一个字段IDNUMBER。
原始数据

--物理删除单列
alter table JT_CS.STUINFO_01 drop column IDNUMBER;
--物理删除多列
alter table JT_CS.STUINFO_01 drop (SEX, AGE);
现在我们来查下DBA_UNUSED_COL_TABS视图,看下刚刚逻辑删除未使用的列还存在吗?

经查询,逻辑删除未使用的列已经不存在,空结果集。
结论:从表中物理删除一列将导致该表中所有未使用的列同时被删除(即有set unused 的列将被删除)。
注意:大表一般不用这种方法删除,对业务影响太严重,在及时性要求不高的情况下,小表可以这么操作。
————————————————
版权声明:本文为CSDN博主「SQL数据库运维」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_46329056/article/details/130460999
Oracle删除列操作:逻辑删除和物理删除的更多相关文章
- Java生鲜电商平台-商城系统库存问题分析以及产品设计对逻辑/物理删除思考
Java生鲜电商平台-商城系统库存问题分析以及产品设计对逻辑/物理删除思考 说明:在生鲜电商的库存设计,是后台的重点,也是难点,关乎商品是否存在超卖.商品的库存增加方式倒不难,直接在后台添加即可,而扣 ...
- oracle 大表在线删除列操作(alter table table_name set unused )
在某些情况下业务建的表某些列没有用到,需要进行删除,但是如果是数据量很大的大表,直接 alter table table_name drop column column_name;这种方法删除,那么将 ...
- 说明Oracle数据库逻辑备份和物理备份的方式。
说明Oracle数据库逻辑备份和物理备份的方式. 解答:Oracle备份包括逻辑备份和物理备份. 1).逻辑备份 数据库的逻辑备份包含读一个数据库记录集和将记录集写入文件. a.输出(Export)输 ...
- Oracle如何操作级联删除
级联删除即删除包含主键值的行的操作,该值由其它表的现有行中的外键列引用.在级联删除中,还删除其外键值引用删除的主键值的所有行. 语法: Foreign Key (column[,...n]) refe ...
- oracle使用DataBase Configuration Assistant创建、删除数据库
可以使用DataBase Configuration Assistant来创建一个心得数据库.Database Configuration Assistant简称是DBCA,是创建.配置以及管理数据库 ...
- ORACLE归档日志满了之后,如何删除归档日志
当ORACLE归档日志满后如何正确删除归档日志 版权声明:本文为博主原创文章,未经博主允许不得转载. 当ORACLE 归档日志满了后,将无法正常登入ORACLE,需要删除一部分归档日志才能正常登入OR ...
- Oracle列操作(增加列,修改列,删除列)
Oracle列操作 增加一列: alter table emp4 add test varchar2(10); 修改一列: alter table emp4 modify test varchar2( ...
- mongodb 物理删除数据
刚开始用mongodb的时候,感觉很好用,速度很快,不过后面就遇到一个问题,数据物理内存一直增加,删除表也不管用. 然后网上找了各种办法,最后发现一个办法管用,就是物理删除存储数据. 操作如下: 1. ...
- 【Oracle基本操作1】 数据库的新建删除
一.新建数据库 1.新建数据库. 1.1打开 Database Configuration Assistant : 1.2选择新建数据库,下一步,选第一个"一般用途或事物处理": ...
- SQL图形化操作设置级联更新和删除
SQL级联操作设置 对SQL数据库的表,进行级联操作(如级联更新及删除),首先需要设置表的主外键关系,有两种方法: 第一种: 1. 选择你要进行操作的数据库 2. 为你要创建关系的两个 ...
随机推荐
- 并发框架 LMAX Disruptor
Introduction Michael Barker edited this page on 2 Mar 2015 · 8 revisions The best way to understan ...
- #树,搜索#NOIP2020.9.26模拟tom
分析 考虑最极端的情况也就是TOM天天吃早餐肠或者晚餐肠, 那么早餐肠和晚餐肠应分别构成一个互不相交连通块, 所以题目转换成是否有一个点的子树大小为\(a\)或\(b\), 将这个点与它父亲的边断开就 ...
- Debian 11 x64 安装 MySQL 8.0.33
更新 sudo apt update sudo apt install gnupg 安装 DEB Package wget -c https://dev.mysql.com/get/mysql-apt ...
- 修复HTTP动词篡改导致的认证旁路问题的方法
本文于2016年4月完成,发布在个人博客网站上. 考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来. 诡异的问题 分析AppScan扫描报告的时候,发现报告里提示" ...
- mysql交集查询按照时间范围查询myBatis
查询 开始时间 --结束时间 <if test="searchParam.startTime != null and searchParam.endTime != null" ...
- 家庭实验室系列文章-如何迁移树莓派系统到更大的 SD 卡?
前言 其实这个专题很久很久之前就想写了,但是一直因为各种原因拖着没动笔. 因为没有资格,也没有钱在一线城市买房 (); 但是在要结婚之前,婚房又是刚需. 我和太太最终一起在一线城市周边的某二线城市买了 ...
- 打造HarmonyOS智能全场景,7大BUFF为您助力!
<HarmonyOS Connect系列课>上线,7套课程教会开发者打造智能全场景: <HarmonyOS Connect系列课>共含7套课程,按照业务流程先后分别为--Dev ...
- 【6】Spring JavaConfig和常见Annotation
Java 5 的推出,加上当年基于纯 Java Annotation 的依赖注入框架 Guice 的出现,使得 Spring 框架及其社区也"顺应民意",推出并持续完善了基于 Ja ...
- 单机运行环境搭建之 --CentOS-6.4安装MySQL 5.6.10并修改MySQL的root用户密码
单机运行环境搭建之 --CentOS-6.4安装MySQL 5.6.10并修改MySQL的root用户密码 Mysql 5.5以后使用了CMake进行安装,参考与以前的区别请参考: http://ww ...
- redis 简单整理——主从拓扑图[二十二]
前言 Redis的复制拓扑结构可以支持单层或多层复制关系,根据拓扑复杂性 可以分为以下三种:一主一从.一主多从.树状主从结构,下面分别介绍. 正文 一主一从结构 一主一从结构是最简单的复制拓扑结构,用 ...