首页 > 代码库 > oracle表结构和表内容差异比对
oracle表结构和表内容差异比对
oracle表结构和表内容差异比对
oracle中有三种集合操作,他们会把左边和右边的select 结果集进行集合操作.
- union 并集
- intersect 交集
- minus 差集
假设有如下两张表 STUDENT_A 和 STUDENT_B
create table STUDENT_A ( id VARCHAR2(36) not null, name VARCHAR2(100), age NUMBER, sex VARCHAR2(2) ); insert into STUDENT_A (id, name, age, sex) values (‘1‘, ‘bobo‘, 28, ‘1‘); insert into STUDENT_A (id, name, age, sex) values (‘2‘, ‘sisi‘, 29, ‘2‘); commit; create table STUDENT_B ( id VARCHAR2(36) not null, name VARCHAR2(100), age NUMBER, clazz VARCHAR2(36) ); insert into STUDENT_B (id, name, age, clazz) values (‘1‘, ‘bobo‘, 28, ‘1‘); insert into STUDENT_B (id, name, age, clazz) values (‘2‘, ‘sisi‘, 29, ‘2‘); insert into STUDENT_B (id, name, age, clazz) values (‘3‘, ‘kiki‘, 30, ‘1‘); commit;
效果图如下:
比较两表结构差异语句:
注意下面的小括号不能省,因为是从左到右计算的,如果省掉计算公式就不一样了哦,大家可以自行脑补.
( SELECT column_name FROM user_tab_columns WHERE table_name = ‘STUDENT_A‘ MINUS SELECT COLUMN_name FROM user_tab_columns WHERE table_name = ‘STUDENT_B‘)UNION( SELECT column_name FROM user_tab_columns WHERE table_name = ‘STUDENT_B‘ MINUS SELECT COLUMN_name FROM user_tab_columns WHERE table_name = ‘STUDENT_A‘)
结果图如下:
比较两表内容语句:
注意下面的小括号不能省,因为是从左到右计算的,如果省掉计算公式就不一样了哦,大家可以自行脑补.
( SELECT * FROM STUDENT_A MINUS SELECT * FROM STUDENT_B)UNION( SELECT * FROM STUDENT_B MINUS SELECT * FROM STUDENT_A)
结果图如下:
同上图可知比较内容的时候,是不关心字段名是否有差异的,它只关心字段的类型和值.
oracle表结构和表内容差异比对
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。