码迷,mamicode.com
首页 > 数据库 > 详细

oracle表结构和表内容差异比对

时间:2016-11-23 12:07:43      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:技术   strong   int   where   计算公式   计算   color   字段   style   

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表结构和表内容差异比对

标签:技术   strong   int   where   计算公式   计算   color   字段   style   

原文地址:http://www.cnblogs.com/whatlonelytear/p/6092779.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!