一、内连接和外连接

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

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. SAP QM 检验批上留样记录如何看?
  2. getsockname和getpeername
  3. 青瓷游戏上市首日破发,“元宇宙光环”能否拯救年内首支游戏股?
  4. 网友:这才是高质量人类女性!32岁清华女博士获奖百万
  5. 【收藏】在QGIS中导入GOOGLE、BING等地图和卫星影像(插件方式和XYZ方式)
  6. Python字符串前加u/r/b的作用
  7. list.php tid= field,dedecms列表页模板中调用当前栏目文章数
  8. mysql 写不进数据库_求助,为何我的数据不能写入数据库
  9. >>’ should be ‘> >’ within a nested template argument list
  10. Linux网站搭建(1)---Apache2安装配置
  11. 高级电工技术实训考核装置
  12. word图片靠右_word设置图片边缘透明的方法步骤
  13. (73)Wangdao.com第十二天_JavaScript consol 对象与控制台
  14. java游戏仙剑外传李逍遥背_经典RPG游戏《仙剑奇侠传》李逍遥后期还在哪些版本中出现过?...
  15. 玩吧接入流程(暂时记记)
  16. win10安装sshpass_安装sshpass
  17. linux系统切换输入法,linux系统切换输入法
  18. 利用C语言写一个U盘小偷程序
  19. 【Python】max()中key的使用
  20. 浏览器开发者选项取消已在调试程序中暂停

热门文章

  1. c语言二叉树搜索函数,二叉树搜索c语言
  2. linux服务器重启命令
  3. Shop7z网上购物系统至尊版
  4. J Roulette(“范式杯”2023牛客暑期多校训练营1)
  5. php的循环有哪几种,PHP数组循环遍历的几种方式
  6. android 万能视频播放器
  7. RobotFramework自动化测试环境搭建
  8. 计算机与美术,浅谈计算机与美术教学.pdf
  9. hibernate的QBC
  10. Github最火项目:程序员必读职场15大定律和7大原则