连接查询(多表查询)、内连接查询的其他实现方式、通用的外连接查询

连接查询

概念:

连接查询就是多张数据表进行连接然后查询数据,而连接查询 又分为内连接查询和外连接查询。

内连接查询:只有满足条件的数据才会被显示。

外连接查询:可以控制不满足条件的数据是否显示。

左外连接查询:可以让左表不满足条件的数据也显示。

右外连接查询:可以让右表不满足条件的数据也显示。

全外连接查询:可以让左表和右表不满足条件的数据都行显示。

查询出雇员的编号、姓名、职位、薪资、部门的位置和部门编号

SELECT empno,ename,job,sal,loc,d.deptno
	FROM emp e ,dept d 
	WHERE e.deptno=d.deptno;

代码运行结果如下:
在这里插入图片描述
左外连接查询(oracle特有方式)

SELECT empno,ename,job,sal,loc,d.deptno
	FROM emp e ,dept d 
	WHERE e.deptno=d.deptno(+);

代码运行结果如下:
在这里插入图片描述
右外连接查询(oracle特有方式)

SELECT empno,ename,job,sal,loc,d.deptno
	FROM emp e ,dept d 
	WHERE e.deptno(+)=d.deptno;

代码运行结果如下:

在这里插入图片描述

内连接查询的其他实现方式

使用其他方式实现内连接查询

SELECT empno,ename,job,sal,dname,loc,d.deptno
    FROM emp e INNER JOIN dept d ON e.deptno=d.deptno;

代码运行结果如下:
在这里插入图片描述

查询出雇员的编号、姓名、职位、部门名称、部门位置、薪资等级

SELECT empno,ename,job,dname,loc,grade
	FROM emp e INNER JOIN dept d ON e.deptno=d.deptno
	     INNER JOIN salgrade s ON e.sal BETWEEN s.losal AND s.hisal;

代码运行结果如下:
在这里插入图片描述

通用的外连接查询

使用通用方式实现左外连接查询

SELECT empno,ename,job,sal,dname,loc,d.deptno
	FROM emp e LEFT OUTER JOIN dept d ON e.deptno=d.deptno;

代码运行结果如下:
在这里插入图片描述
右外连接查询

SELECT empno,ename,job,sal,dname,loc,d.deptno
	FROM emp e RIGHT OUTER JOIN dept d ON e.deptno=d.deptno;

代码运行结果如下:
在这里插入图片描述
全外连接查询

SELECT empno,ename,job,sal,dname,loc,d.deptno
	FROM emp e FULL OUTER JOIN dept d ON e.deptno=d.deptno;

代码运行结果如下:
在这里插入图片描述
总结:
1.内连接查询的方式有两种:

  • 直接在FROM之后跟上多张数据表,在WHERE条件中去掉笛卡尔积
  • 使用INNER JOIN 进行连接,在ON之后去掉笛卡尔积

2.通用的外连接查询

  • 左外连接:使用LEFT OUTER JOIN 实现,在ON之后去掉笛卡尔积
  • 右外连接:使用RIGHT OUTER JOIN 实现,在ON之后去掉笛卡尔积
  • 全外连接:使用FULL OUTER JOIN 实现,在ON之后去掉笛卡尔积
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值