一、内连接和外连接

内连接用于返回满足连接条件的记录;而外连接则是内连接的扩展,它不仅会满足连接条件的记录,而且还会返回不满足连接条件的记录,语法如下:

select table1.column,table2.column from table1 [inner|left|right|full]join table2 on table1.column=table2.column;

inner join表示内连接、left join表示左外连接、right

join表示右外连接、full join表示全连接;on用于指定连接条件。

注意:如果使用form内、外连接,则必须使用on操作符指定连接条件;如果使用(+)操作符连接,则必须使用where指定连接条件。

1、内连接

内连接查询返回满足条件的所有记录,默认情况下没有指定任何连接则为内连接,例如:

select t1.name,t2.name from cip_temps t1 inner join cip_tmp t2 on t1.ID=t2.id;

2、左外连接

左外连接查询不仅返回满足条件的所有记录,而且还会返回不满足连接条件的连接操作符左边表的其他行,例如:

select t1.name,t2.name from cip_temps t1 left join cip_tmp t2 on t1.ID=t2.id;

3、右外连接

右外连接查询不仅返回满足调价的所有记录,而且还会返回不满足连接条件的连接操作符右边表的其他行,例如:

select t1.name,t2.name from cip_temps t1 right join cip_tmp t2 on t1.ID=t2.id;

4、全连接

全连接查询不仅返回满足调价的所有记录,而且还会返回不满足连接条件的其他行,例如:

select t1.name,t2.name from cip_temps t1 full join cip_tmp t2 on t1.ID=t2.id;

5、(+)操作符

在oracle9i之前,当执行外连接时,都是使用连接操作符(+)来完成的,尽管可以使用操作符(+)执行外连接操作,但是oracle9i开始oracle建议使用outer

join执行外连接,使用(+)操作符执行外连接的语法如下:

select table1.column,table2.column from table1,table2 where table1.column(+)=table2.column;

注意:

当使用(+)操作符执行外连接时,应当将该操作符放在显示较少行(完全满足连接条件行)一端。

(+)操作符只能出现在where子句中,并且不能与outer join语法同时使用。

当使用(+)操作符执行外连接时,如果在where语句中包含多个条件,则必须在所有的条件中都包含(+)操作符。

(+)操作符只能适用于列,而不能适用于表达式。

(+)操作符不能与or和in操作符一起使用。

(+)操作符只能用于左外连接和右外连接,不能用于实现完全连接。

(1)、使用(+)操作符执行左外连接

当使用左外连接时,不仅会返回满足连接条件的所有行,而且还会返回不满足连接条件的左边边的其他行。因为(+)操作符要放到行数较少的一端,所以在where子句中应当将该操作符放到右边表的一端,示例如下:

select t1.name,t2.name from cip_temps t1,cip_tmp t2 where t1.ID=t2.id(+);

(2)、使用(+)操作符执行右外连接

当使用右外连接时,不仅会返回满足连接条件的所有行,而且还会返回不满足连接条件的右边边的其他行。因为(+)操作符要放到行数较少的一端,所以在where子句中应当将该操作符放到左边表的一端,示例如下:

select t1.name,t2.name from cip_temps t1,cip_tmp t2 where t1.ID(+)=t2.id;

6、笛卡尔积

笛卡尔积(Oracle)

现在有一张国家表,里面只有一个国家名称的字段,内容如下:“中国、美国、巴西、荷兰”,现在要求通过查询实现对战功能:

create table national(

name varchar(30)

);

--增加测试数据

insert into national(name) values(‘中国’);

insert into national(name) values(‘美国’);

insert into national(name) values(‘巴西’);

insert into national(name) values(‘荷兰’);

select t1.name,t2.name

from national t1,national t2 where t1.name<>t2.name;

oracle数据库 笛卡尔积,Oracle连接查询和笛卡尔积相关推荐

  1. Oracle数据库多表连接查询操作以及查询操作的补充

    文章目录 一.查询语句概述 1.查询语句基本语法格式 2.伪表和伪劣 二.单表查询 1.select子句 2.FROM子句 3.WHERE子句 4.DISTINCT关键字 5.GROUP BY子句与聚 ...

  2. Oracle数据库之SQL连接查询

    前言 现实中有这么一种需求,有时候我们需要查询的数据是在多个表中的,那么如何从多个表中查询数据 呢?这就需要通过表的连接来实现查询了. 笛卡尔积 在定义连接之前我们需要简单的了解一下笛卡尔积,笔者不会 ...

  3. java访问oracle集群,JAVA查询Oracle数据库集群连接字符串

    下载必备最新排行装机分类.游戏手机驱动源码LinuxMac小游戏.商城招聘百科知道软件盒子论坛3G版 本站搜索 新闻资讯 软件下载 当前位置: 网站首页 > 编程开发 > 编程语言 > ...

  4. Oracle数据库:oracle内连接inner join on,多表查询各种自链接、内连接、外连接的练习示例

    Oracle数据库:oracle内连接inner join on,多表查询各种自链接.内连接.外连接的练习示例 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得 ...

  5. Oracle数据库之多表查询

    oracle安装参照: Oracle数据库之安装教程 Oracle数据库总结: Oracle数据库之基本查询 Oracle数据库之单行函数 Oracle数据库之多行函数 Oracle数据库之多表查询 ...

  6. 没有oracle客户端可以连接数据库,Oracle数据库之SqlDbx连接oracle(无需安装Oracle客户端)...

    本文主要向大家介绍了Oracle数据库之SqlDbx连接oracle(无需安装Oracle客户端),通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. 标签:acl   str    ...

  7. Oracle数据库:oracle外连接left/right/full outer join on,oracle扩展的左右外连接展示符号(+)

    Oracle数据库:oracle外连接left/right/full outer join on,oracle扩展的左右外连接展示符号(+) 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大 ...

  8. Oracle数据库的dblink连接

    Oracle数据库的dblink连接 最近在做Oracle数据库的dblink连接,在简单学习之后就直接使用命令创建了连接 create database link tieqian connect t ...

  9. Oracle数据库:自然连接natural join,using语句,注意避免写交叉连接

    Oracle数据库:自然连接natural join,using语句,注意避免写交叉连接 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的 ...

  10. oracle数据库连接检查,检查Oracle数据库的最大连接

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. [[email protected] sql]# more check_connect_o ...

最新文章

  1. 运行cmd直接进入指定目录下的命令
  2. JAVA中类似C中memcpy功能
  3. Windows程序设计_13_伤不起的书
  4. Buffer Cache Hit Ratio
  5. 七、压缩与解压缩命令
  6. 透过 OKR 进行项目过程管理
  7. 文件头标识判断图片格式
  8. JAVA复习5(TreeSet)
  9. Vue组件及自定义事件
  10. 蚂蚁集团CEO胡晓明宣布辞任
  11. android 多类型参数,Android的数据绑定-类型参数T具有不兼容的上限:ViewDataBinding和MainActivity...
  12. 流量控制Sentinel
  13. vivadohlsdsp_FPGA硬件加速学习vivado hls-----------------卷积加速
  14. Java构造方法解析
  15. 深度学习CNN算法原理
  16. 天正如何转为t3_天正插件 t3 天正文件转T3格式CAD图
  17. Navicat相关注册码
  18. C/C++ FFmepeg Qt音视频开发录屏摄像机
  19. 专访智齿科技吴立楠:智能客服行业发展的三个趋势
  20. oracle 甩手 java ee,谈判失败,Oracle 亲手把 Java EE 送上断头台

热门文章

  1. Spring 详解Bean的后置处理器
  2. hdu 1540 Tunnel Warfare(线段树区间合并)
  3. 哪种技术的工作更稳定?
  4. MyBatis学习之映射器Mapper(接口映射器+xml映射文件)
  5. 前员工抄袭自腾讯?如今要被老东家告到破产!
  6. 臻图信息:数字技术推动智慧楼宇开启新模式
  7. 如何减少换页错误(如何减少缺页中断)
  8. 洛谷P1425 小鱼的游泳时间__C++描述
  9. 程序员经常浏览的 60 个技术网站汇总,还不赶快收藏!
  10. HTB-Brainfuck