Oracle中对两个数据表交集的查询

廷斌gg

廷斌gg

2016-02-19 17:22

每个人都希望每天都是开心的,不要因为一些琐事扰乱了心情还,闲暇的时间怎么打发,关注图老师可以让你学习更多的好东西,下面为大家推荐Oracle中对两个数据表交集的查询,赶紧看过来吧!

  Oracle关系型数据库管理系统是世界上流行的关系数据库,它是一个极其强大、灵活和复杂的系统,据说,在使用oracle时应有这样的思想,那就是在SQL中几乎可以实现任何一种想法。

  下面向大家介绍使用SQL查两个Oracle数据表查询的相同数据的方法,笔者感到这两种方法执行效率高、使用方便。

  第一种方法:利用操作符intersect

  intersect操作符用来合并两个查询,返回两个查询中都存在的记录,即返回两个查询结果的交集,前提是两个查询的列的数量和数据类型必须完全相同。

  举例说明:

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  表A的数据结构:

中文名称字段名类型长度 学号 codeC 4 姓名 nameC 8

  表B的数据结构:

中文名称 字段名 类型 长度 学号 Student_code C 4 姓名 Student_nameC 8 分数 scoreN 3

  表A的数据为:

  ('1101 ','韩甲'),('1102 ','丁乙')

  表B的数据为:

  ('1101 ','韩甲',99),('1102 ','丁乙',89),('1103 ','徐静',94)

  在oracle中运行以下查询,图1显示了这个查询的结果:

  

SQLselect code, name from Aintersectselect student_code,student_name from B;  

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  图1使用intersect操作符查询的结果

  第二种方法: in子句

  in子句可以在子查询中为where子句计算所得的值创建一个列表。这种方法与前一种方法有所不同的是,前一种方法比较多列但只使用一个intersect就行了,而一个in子句用来比较两个子查询的一列,比较几列就要使用几个in子句。下面举例说明如何取得两个查询的交集。

  仍以A和B两张数据表为例,在oracle中运行以下查询,图2显示了这个查询的结果:

  

SQLselect code,name from Awhere A.code in(select student_code from B)and A.name in(select student_name from B)order by A.code;

  查询结果如图2所示。

  图2使用in子句查询的结果

  以上为笔者使用oracle7.3的体会,如有不当之处,请不吝赐教。

展开更多 50%)
分享

猜你喜欢

Oracle中对两个数据表交集的查询

编程语言 网络编程
Oracle中对两个数据表交集的查询

Oracle对两个数据表交集的查询

编程语言 网络编程
Oracle对两个数据表交集的查询

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Oracle 数据表分区的策略

编程语言 网络编程
Oracle 数据表分区的策略

数据表中数据的管理

编程语言 网络编程
数据表中数据的管理

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Oracle 9i截断数据表

编程语言 网络编程
Oracle 9i截断数据表

Oracle 9i创建数据表

编程语言 网络编程
Oracle 9i创建数据表

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Sql语句密码验证安全漏洞

Sql语句密码验证安全漏洞

理解和使用Oracle 8i分析工具-LogMiner

理解和使用Oracle 8i分析工具-LogMiner
下拉加载更多内容 ↓