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 ('', 'bobo', 28, '');
insert into STUDENT_A (id, name, age, sex)
values ('', 'sisi', 29, '');
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 ('', 'bobo', 28, '');
insert into STUDENT_B (id, name, age, clazz)
values ('', 'sisi', 29, '');
insert into STUDENT_B (id, name, age, clazz)
values ('', 'kiki', 30, '');
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表结构和表内容差异比对的更多相关文章

  1. oracle表结构和表内容差异比对【原】

    oracle表结构和表内容差异比对 oracle中有三种集合操作,他们会把左边和右边的select 结果集进行集合操作. union 并集 intersect 交集 minus 差集 假设有如下两张表 ...

  2. oracle 快速复制表结构、表数据

      1.情景展示 根据现有的表,建一个新的表,要求:新表的结构与原有表的表结构一模一样,如何快速实现? 根据现有的表,建一个新的表,要求:新表的结构.数据与原表一模一样,如何实现快速复制旧表? 2.解 ...

  3. Mysql 复制表结构 及其表的内容

    顺便转一下Mysql复制表结构.表数据的方法: 1.复制表结构及数据到新表CREATE TABLE 新表 SELECT * FROM 旧表 这种方法会将oldtable中所有的内容都拷贝过来,当然我们 ...

  4. Java连接MySQL数据库。编写一个应用程序,在主类Test_4类中,通过JDBC访问stu数据库,显示t_student表中的内容(表结构见表1),显示效果自己设计。

    题目2:编写一个应用程序,在主类Test_4类中,通过JDBC访问stu数据库,显示t_student表中的内容(表结构见表1),显示效果自己设计.之后,可根据显示的内容进行某条记录的删除(以id为条 ...

  5. C# DateTime的11种构造函数 [Abp 源码分析]十五、自动审计记录 .Net 登陆的时候添加验证码 使用Topshelf开发Windows服务、记录日志 日常杂记——C#验证码 c#_生成图片式验证码 C# 利用SharpZipLib生成压缩包 Sql2012如何将远程服务器数据库及表、表结构、表数据导入本地数据库

    C# DateTime的11种构造函数   别的也不多说没直接贴代码 using System; using System.Collections.Generic; using System.Glob ...

  6. SQL复制表结构或表数据

    需求: 软件开发过程中,一般会部署两个数据库:一个测试数据库提供给开发和测试过程使用:一个运维数据库提供上线使用.当需求变化需增加表时,会遇到数据库表结构或表数据同步的问题,这时就要复制表结构或表数据 ...

  7. 【MySQL】MySQL复制表结构、表数据

    平常,复制.备份表,一般都直接操作IDE完成.但有时,一些初始化数据的脚本,在操作数据前,最好备份下操作表的结构.数据,不至于出错了被置于为难的境地. 所以复制表结构.表数据的语句就派上用场. > ...

  8. mysqldump批量导出(多张表)表结构及表数据

    Mysql 批量导出表结构(数据) 仅导出结构,不导出数据: 1.导出數據库為dbname的表结构    mysqldump  -h主机地址 -u用户名 -p密码 -d dbname >db.s ...

  9. Sql2012如何将远程服务器数据库及表、表结构、表数据导入本地数据库

    1.第一步,在本地数据库中建一个与服务器同名的数据库 2.第二步,右键源数据库,任务>导出数据,弹出导入导出提示框,点下一步继续 3.远程数据库操作,确认服务器名称(服务器地址).身份验证(输入 ...

随机推荐

  1. Laravel学习笔记(四)数据库 数据库迁移案例

    创建迁移 首先,让我们创建一个MySql数据库“Laravel_db”.接下来打开app/config目录下的database.php文件.请确保default键值是mysql: return arr ...

  2. mvc通过controller创建交互接口

    public JsonResult Home(string userName, string password, string type) { List<person> list = ne ...

  3. win8.1中EZDML输入中文显示问号问题

    在win8.1下使用EZDML,发现无法输入中文,解决办法如下:   打开控制面板--语言   删除美式键盘 然后就可以正常输入中文了 其实就是win8.1把美式键盘默认放在中文语言中,导致的输入问题 ...

  4. Codeforces Round #232 (Div. 2) D. On Sum of Fractions

    D. On Sum of Fractions Let's assume that v(n) is the largest prime number, that does not exceed n; u ...

  5. xp和win7安装telnet服务

    xp: 有些ghost版本的xp会精简掉telnet服务 首先telnet服务需要的几个文件: tlntadmn.exe tlntsess.exe tlntsvr.exe tlntsvrp.dll 文 ...

  6. js实现图片无缝连接

    效果图 1.首先先看看html和css代码 <style> *{padding:0;margin:0;} #div1{margin:100px auto;background:red;wi ...

  7. 《JavaScript高级程序设计》学习笔记(4)——引用类型

    欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 本节内容对应<JavaScript高级程序设计>的第五章内容. 在ECMAScript中, ...

  8. vc-complex-type.2.3: Element 'filter-mapping' cannot have character [children], because the type's content type is element-only.

    报这种错一般是因为导入的项目或者黏贴的代码中有中文空格或者中文编码,只需将报错代码重写一遍即可.

  9. php 判断文件或目录是否存在

    判断文件或目录是否存在有自带的函数 file_exists:文件是否存在 $file = "check.txt"; if(file_exists($file)) {     ech ...

  10. Java堆内存的十个要点

    Java中的堆空间是什么? 当Java程序开始运行时,JVM会从操作系统获取一些内存.JVM使用这些内存,这些内存的一部分就是堆内存.堆内存通常在存储地址的底层,向上排列.当一个对象通过new关键字或 ...