欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Oracle数据库-表连接

程序员文章站 2022-03-09 08:06:24
...

表连接

当获取的数据不是来源于同一张表,而是来源于多张表的时候就需要用到表连接。

一、92连接

1、笛卡尔积

Oracle数据库-表连接
两个集合A和B,A*B就是笛卡尔积

course表

Oracle数据库-表连接

teacher表

Oracle数据库-表连接

select * from course,teacher
运行结果
Oracle数据库-表连接

2、等值连接

等值连接,就是在笛卡尔积的基础上去条件相同的值

select * from course c,teacher t where c.tno = t.tno
运行结果
Oracle数据库-表连接

3、非等值连接

非等值连接:>、<、!=、<>、between and

-- 查询员工姓名,工资及等级
select ename,sal,grade from salgrade s,emp e where e.sal between s.losal and s.hisal
运行结果
Oracle数据库-表连接

4、自连接

特殊的等值连接,来自于一张表

-- 员工的名字和员工的上级名字
select e1.ename 员工,e2.ename 上级 from emp e1,emp e2 where e1.mgr = e2.empno
运行结果
Oracle数据库-表连接

5、外连接

在上述的自连接有一个问题,缺一条记录。那是因为有一条的记录的上级为null,为了解决这一问题,可以使用外连接解决。

-- 员工的名字和员工的上级名字
select e1.ename 员工,e2.ename 上级 from emp e1,emp e2 where e1.mgr = e2.empno(+)
运行结果
Oracle数据库-表连接

就多加了一个+号就解决了这个问题,加号对面的表,也就是上面的e1表是主表,如果主表在左边就是左连接,在右边就是右连接

待续…

相关标签: Oracle