oracle删除一张表后,索引,同义词,视图,约束会被删除么
问题描述:看到有一道题,说删除一张表之后,什么会被关联删除

进行测试,看看一张表什么会被关联删除,进行scoot下的EMP进行测试
一、创建测试需求用例
表结构:
SQL> desc emp;
Name Null? Type
----------------------------------------- -------- ----------------------------
EMPNO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)
创建视图:
CREATE OR REPLACE VIEW V_EMP
AS
SELECT * FROM EMP WHERE ENAME LIKE '%A%'
UNION ALL
SELECT * FROM EMP WHERE ENAME LIKE '%S%'
UNION ALL
SELECT * FROM EMP WHERE SAL >= 3000;
CREATE OR REPLACE VIEW V_EMP
AS
SELECT * FROM EMP WHERE ENAME LIKE '%A%'
UNION
SELECT * FROM EMP WHERE ENAME LIKE '%S%'
UNION
SELECT * FROM EMP WHERE SAL >= 3000;
创建序列:
CREATE SEQUENCE SEQ_BJSXT
START WITH 20001
INCREMENT BY 2
MAXVALUE 99999999
MINVALUE 1
CYCLE
CACHE 50
创建同义词
create or replace synonym syn_emp for scott.emp;
删除前状态
视图查询:
SQL> select view_name,view_type from user_views; VIEW_NAME VIEW_TYPE
------------------------------ ------------------------------
V_EMP
索引查询:
SQL> select INDEX_NAME,TABLE_NAME,STATUS from user_indexes; INDEX_NAME TABLE_NAME STATUS
------------------------------ ------------------------------ --------
SYS_IL0000089251C00003$$ TEST VALID
IDX_T_ID T VALID
PK_EMPNO_OGG EMP_OGG VALID
PK_EMP EMP VALID
IDX_EMP_ENAME EMP VALID
PK_DEPTNO_OGG DEPT_OGG VALID
PK_DEPT DEPT VALID 7 rows selected.
序列查询:
SQL> r
1* select * from user_sequences SEQUENCE_NAME MIN_VALUE MAX_VALUE INCREMENT_BY C O CACHE_SIZE LAST_NUMBER
------------------------------ ---------- ---------- ------------ - - ---------- -----------
SEQ_BJSXT 1 99999999 2 Y N 50 20101
主键查询:
主键
INDEX_NAME TABLE_NAME COLUMN_NAME COLUMN_POSITION COLUMN_LENGTH CHAR_LENGTH DESCEND INDEX_TYPE
1 IDX_EMP_ENAME EMP ENAME 1 10 10 ASC NORMAL
2 PK_EMP EMP EMPNO 1 22 0 ASC NORMAL
外键约束:
select * from user_constraints c where c.constraint_type = 'R' and c.table_name = 'EMP';
1 SCOTT FK_DEPTNO R EMP <Long> SCOTT PK_DEPT NO ACTION ENABLED NOT DEFERRABLE IMMEDIATE VALIDATED USER NAME 2013/8/24 12:04:21
同义词查询:
SQL> SELECT * FROM USER_SYNONYMS; SYNONYM_NAME TABLE_OWNER TABLE_NAME DB_LINK
------------------------------ ------------------------------ ------------------------------ --------------------------------------------------------------------------------------------------------------------------------
SYN_EMP SCOTT EMP
user_obejcts状态查询:
14和17分别是emp表和emp表中的索引object,其余的还能看到序列,视图,同义词的对象
select * from user_objects;
OBJECT_NAME SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE CREATED LAST_DDL_TIME TIMESTAMP STATUS TEMPORARY GENERATED SECONDARY NAMESPACE EDITION_NAME
1 PK_DEPT 87107 87107 INDEX 2013/8/24 12:04:21 2013/8/24 12:04:21 2013-08-24:12:04:21 VALID N N N 4
2 DEPT 87106 87106 TABLE 2013/8/24 12:04:21 2013/8/24 12:04:21 2013-08-24:12:04:21 VALID N N N 1
3 BONUS 87110 87110 TABLE 2013/8/24 12:04:21 2013/8/24 12:04:21 2013-08-24:12:04:21 VALID N N N 1
4 SALGRADE 87111 87111 TABLE 2013/8/24 12:04:21 2013/8/24 12:04:21 2013-08-24:12:04:21 VALID N N N 1
5 EMP_OGG 88789 88789 TABLE 2020/12/23 13:14:06 2020/12/23 13:14:30 2020-12-23:13:14:06 VALID N N N 1
6 DEPT_OGG 88790 88790 TABLE 2020/12/23 13:14:07 2020/12/23 13:14:42 2020-12-23:13:14:07 VALID N N N 1
7 PK_EMPNO_OGG 88791 88791 INDEX 2020/12/23 13:14:11 2020/12/23 13:14:11 2020-12-23:13:14:11 VALID N N N 4
8 PK_DEPTNO_OGG 88792 88792 INDEX 2020/12/23 13:14:12 2020/12/23 13:14:12 2020-12-23:13:14:12 VALID N N N 4
9 TEST 89251 89251 TABLE 2021/6/13 16:12:42 2021/6/13 16:12:42 2021-06-13:16:12:42 VALID N N N 1
10 IDX_T_ID 89274 89274 INDEX 2021/6/14 16:44:43 2021/6/14 16:44:43 2021-06-14:16:44:43 VALID N N N 4
11 SYS_IL0000089251C00003$$ 89253 89253 INDEX 2021/6/13 16:12:42 2021/6/13 16:12:42 2021-06-13:16:12:42 VALID N Y N 4
12 SYS_LOB0000089251C00003$$ 89252 89252 LOB 2021/6/13 16:12:42 2021/6/13 16:12:42 2021-06-13:16:12:42 VALID N Y N 8
13 T 89273 89273 TABLE 2021/6/14 16:40:39 2021/6/14 16:44:45 2021-06-14:16:40:39 VALID N N N 1
14 EMP 87108 87108 TABLE 2013/8/24 12:04:21 2022/1/23 16:31:06 2022-01-23:16:31:06 VALID N N N 1
15 SEQ_BJSXT 90884 SEQUENCE 2022/1/23 16:04:25 2022/1/23 16:04:25 2022-01-23:16:04:25 VALID N N N 1
16 SYN_EMP 90891 SYNONYM 2022/1/23 16:27:28 2022/1/23 16:27:28 2022-01-23:16:27:28 INVALID N N N 1
17 BIN$1jx+fvk2Dy3gUwajqMCaPA==$1 90885 90885 INDEX 2022/1/23 16:04:38 2022/1/23 16:27:53 2022-01-23:16:27:53 VALID N N N 4
18 V_EMP 90883 VIEW 2022/1/23 16:03:58 2022/1/23 16:03:58 2022-01-23:16:03:58 INVALID N N N 1
19 BIN$1jx+fvk3Dy3gUwajqMCaPA==$1 87109 87109 INDEX 2013/8/24 12:04:21 2022/1/23 16:27:53 2022-01-23:16:27:53 VALID N N N 4
20 PRO_SUPPLEMENT_LEAVE_MAPPING 90886 PROCEDURE 2022/1/23 16:10:40 2022/1/23 16:10:40 2022-01-23:16:10:40 INVALID N N N 1
回收站:
SQL> show recyclebin
SQL>
二、删除表
SQL> drop table emp; Table dropped.
索引状态:
INDEX_NAME TABLE_NAME STATUS
1 SYS_IL0000089251C00003$$ TEST VALID
2 IDX_T_ID T VALID
3 PK_EMPNO_OGG EMP_OGG VALID
4 PK_DEPTNO_OGG DEPT_OGG VALID
5 PK_DEPT DEPT VALID
视图状态:
SQL> select view_name,view_type from user_views; VIEW_NAME VIEW_TYPE
------------------------------ ------------------------------
V_EMP
序列状态:
SQL> select * from user_sequences; SEQUENCE_NAME MIN_VALUE MAX_VALUE INCREMENT_BY C O CACHE_SIZE LAST_NUMBER
------------------------------ ---------- ---------- ------------ - - ---------- -----------
SEQ_BJSXT 1 99999999 2 Y N 50 20101
同义词状态:
SQL> SELECT * FROM USER_SYNONYMS; SYNONYM_NAME TABLE_OWNER TABLE_NAME DB_LINK
------------------------------ ------------------------------ ------------------------------ --------------------------------------------------------------------------------------------------------------------------------
SYN_EMP SCOTT EMP
user_objects状态查询:
可以看到用户表以及索引就已经被删除了
select * from user_objects;
OBJECT_NAME SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE CREATED LAST_DDL_TIME TIMESTAMP STATUS TEMPORARY GENERATED SECONDARY NAMESPACE EDITION_NAME
1 PK_DEPT 87107 87107 INDEX 2013/8/24 12:04:21 2013/8/24 12:04:21 2013-08-24:12:04:21 VALID N N N 4
2 DEPT 87106 87106 TABLE 2013/8/24 12:04:21 2013/8/24 12:04:21 2013-08-24:12:04:21 VALID N N N 1
3 BONUS 87110 87110 TABLE 2013/8/24 12:04:21 2013/8/24 12:04:21 2013-08-24:12:04:21 VALID N N N 1
4 SALGRADE 87111 87111 TABLE 2013/8/24 12:04:21 2013/8/24 12:04:21 2013-08-24:12:04:21 VALID N N N 1
5 EMP_OGG 88789 88789 TABLE 2020/12/23 13:14:06 2020/12/23 13:14:30 2020-12-23:13:14:06 VALID N N N 1
6 DEPT_OGG 88790 88790 TABLE 2020/12/23 13:14:07 2020/12/23 13:14:42 2020-12-23:13:14:07 VALID N N N 1
7 PK_EMPNO_OGG 88791 88791 INDEX 2020/12/23 13:14:11 2020/12/23 13:14:11 2020-12-23:13:14:11 VALID N N N 4
8 PK_DEPTNO_OGG 88792 88792 INDEX 2020/12/23 13:14:12 2020/12/23 13:14:12 2020-12-23:13:14:12 VALID N N N 4
9 TEST 89251 89251 TABLE 2021/6/13 16:12:42 2021/6/13 16:12:42 2021-06-13:16:12:42 VALID N N N 1
10 IDX_T_ID 89274 89274 INDEX 2021/6/14 16:44:43 2021/6/14 16:44:43 2021-06-14:16:44:43 VALID N N N 4
11 SYS_IL0000089251C00003$$ 89253 89253 INDEX 2021/6/13 16:12:42 2021/6/13 16:12:42 2021-06-13:16:12:42 VALID N Y N 4
12 SYS_LOB0000089251C00003$$ 89252 89252 LOB 2021/6/13 16:12:42 2021/6/13 16:12:42 2021-06-13:16:12:42 VALID N Y N 8
13 T 89273 89273 TABLE 2021/6/14 16:40:39 2021/6/14 16:44:45 2021-06-14:16:40:39 VALID N N N 1
14 SEQ_BJSXT 90884 SEQUENCE 2022/1/23 16:04:25 2022/1/23 16:04:25 2022-01-23:16:04:25 VALID N N N 1
15 SYN_EMP 90891 SYNONYM 2022/1/23 16:27:28 2022/1/23 16:27:28 2022-01-23:16:27:28 INVALID N N N 1
16 V_EMP 90883 VIEW 2022/1/23 16:03:58 2022/1/23 16:03:58 2022-01-23:16:03:58 INVALID N N N 1
17 PRO_SUPPLEMENT_LEAVE_MAPPING 90886 PROCEDURE 2022/1/23 16:10:40 2022/1/23 16:10:40 2022-01-23:16:10:40 INVALID N N N 1
结合测试得出结论
1.删除一张表,肯定会删除一张表中的数据和这个对象
2.删除表后,同义词,视图,序列不会被删除
3.删除表后,索引会被删除,不会失效。索引失效只有row_id发生重新排序的时候才会出现,比如分区进行增删,表move,压缩或者shrink的时候会出现索引失效的情况
图中的答案应为:ACD
oracle删除一张表后,索引,同义词,视图,约束会被删除么的更多相关文章
- Oracle删除多张表
项目中遇到要删除多张表,发现不能同时删除,可以先查询出SQL语句,然后批量执行 1.查询出SQL语句: select 'drop table '||table_name || ';' from use ...
- [Oracle]察看一张表的约束 和 察看一张表的索引
--察看一张表的约束select table_name,constraint_name,constraint_type from user_constraints where table_name=u ...
- oracle查询某张表的外键,并用 truncate 命令有外键的表中的数据
注:本文来源于<oracle查询某张表的外键(最终解决办法)> 一:几个查询表外键的脚本 select b.table_name, b.column_name from user_cons ...
- ORACLE 查询一个数据表后通过遍历再插入另一个表中的两种写法
ORACLE 查询一个数据表后通过遍历再插入另一个表中的两种写法 语法 第一种: 通过使用Oracle语句块 --指定文档所有部门都能查看 declare cursor TABLE_DEPT and ...
- 【SqlServer】【问题收集】删除同一张表中完全相同的记录
1 概述 在Sqlserver中,当通过SqlServer设计器删除同一张表中两条完全相同的记录时,会弹出如下提示: 点击“是” 弹出如下提示,不让删除 2 问题解决 这个问题很简单,用DEL ...
- MySQL丨删除一张表小常识
在MySQL里面 ,对于删除一张表里面的所有内容有两种语句: 1.delete from table_name; 2.truncate table table_name; 解析:以上两种方式都可以删除 ...
- oracle查看表,索引,视图,存储过程的定义
通过 DBMS_METADATA 包 Oracle 的在线文档,对这个包有详细说明: DBMS_METADATA 通过该dbms_metadata包的get_ddl()方法,我们可以查看表,索引, ...
- 【整理】SQLServer查询各种数据库对象(表,索引,视图,图表,存储过程等)
首先明确数据库对象的定义:数据库对象定义数据库内容的结构.它们包含在数据库项目中,数据库项目还可以包含数据生成计划和脚本. 常见的数据库对象包括:表,索引,视图,图表,缺省值,规则,触发器,存储过程, ...
- oracle坚决不挂01(表,索引,视图的创建,修改,删除,查询)
考试快来了,来篇oracle干货,复习一下(挣扎一下) 废话不多说,开始写! 这篇是数据库对象的有关操作的总结! 数据库对象有熟悉的表,视图,索引,序列,同义词等(这个oracle东西真不少,小声bb ...
- (转) 【oracle调优】优化全表扫---cache整张表或索引
情景分析: 1)某查询必须要走全表扫描 2)该查询执行的频率相当高 3)对执行时间的要求也相当苛刻的话 4)数据库的IO比较吃紧 5)数据库的内存比较宽松 6)该表的大小没有大到离谱 以上情况下,可以 ...
随机推荐
- git commit --amend适用场景详解
适用场景: 场景1.本地开发代码已提交,提交后发现这次提交的代码有问题,或者漏提交了一些文件,此时,希望达到以下目的: ①修改有问题的代码. ②补足漏提交的文件(一般是新增的文件没有git add . ...
- Java mysql查询数据库重复数据(单个或多个字段)
查询表重复数据: SELECT * FROM 表1 f WHERE (f.字段1,f.字段2) in (SELECT 字段1,字段2 FROM 表1 GROUP BY 字段1,字段2 HAVING c ...
- Java中接口相关知识
1.接口 1.1接口概述 接口就是一种公共的规范标准,只要符合标准,大家都可以通用 Java中的接口更多的体现在对行为的抽象 1.2接口的特点 接口用关键字interface修饰,格式:public ...
- OSIDP-I/O管理和磁盘调度-11
I/O设备 I/O设备分类:人可读.机器可读和远程通信三类. I/O设备之间的差别: 1.数据传送速率 2.应用领域 3.控制的复杂性 4.传送单位 5.数据表示形式 6.错误条件 I/O功能的组织 ...
- Websocket是什么?
一. WebSocket是什么? Websocket是一种网络通信协议,是一个在计算机里专门在[两点]之间传输数据的约定和规范. 二. 为什么存在WebSocket? 因为 HTTP 协议有一个缺陷: ...
- 实验1 C语言初认识
任务1 #include<stdio.h> int main() { printf("My stuno is 202083450002\n"); printf(&quo ...
- 2020/5/14-笔记:Oracle数据库新建用户与给用户授权
- 一些狗J8稳定性测试
1.CTS 2.NTS 3.高温老化 4.DDR 稳定度 5.一些HW 指标
- PHP 计算一个月第一天和最后一天
$fistday= date('Y-m-1 23:59:59'); $lastday= strtotime("$fistday+1 month -1 day");
- DVWA-File Upload(文件上传)
文件上传是很危险的漏洞,攻击者上传木马到服务器,可以获取服务器的操作权限 LOW 审计源码 <?php if( isset( $_POST[ 'Upload' ] ) ) { // 定义 文件上 ...