连接查询: join
(1)等值连接: 通常用主外键连接
(2)非等值连接
例
--
统计每个人姓名。部门名,薪资,薪资级别
select
ename,d.dname,e.sal,s.grade
from
emp e,dept d,salgrade s
where e.sal between s.losal and s.hisal
and e.deptno = d.deptno
(3)内部连接 关键字 inner join on 想当于where
select
*
from
emp e
inner
join
dept d
on d.deptno = e.deptno
(4)外部连接 左右连
左连接:left join 以左边表为主表
右连接:
全外连接 :把表中所有数据都显示出来,有关联的数据,使用关联条件拼接,没有数据的用null 填充 关键字: full outer join
(5)自身连接
--
自身连接 查询员工的上级领导
select e1.ename,e1.job,e2.ename from emp e1,emp e2
where e1.mgr = e2.empno
(6)交叉连接,产生笛卡尔积
--
交叉连接
select
*
from emp crossjoin dept
(6)自然连接 关键字 natural join
根据同名列进行自动连接
要求同名列的数据类型必须相同,长度必须相同,主外键必须一致
相当于没有条件的等值连接
--
自然连接
select
*
from
emp
natural
join dept
(7)联合查询: 多个投影结果合并在一起 关键字 union all
要求进行查询的结果的列数必须相同:
对应的列的数据类型必须相同,长度口蹄疫不同
union all 全部显示
union 自动去除重复数据
--
联合查询
select
empno, ename
from
emp
union
all
select deptno,dname from dept
去重关键字: distinct:
--
查询都有哪些部门有员工,员工在哪些部门里
select
distinct deptno from emp
原文:https://www.cnblogs.com/miaomeng/p/8890454.html
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!