其他分享
首页 > 其他分享> > 连表查询:表连接(92)

连表查询:表连接(92)

作者:互联网

--连表查询
--当要查询的数据来自与不同的表|数据源,就可以使用连表查询
--语法: 92  99

--92

--笛卡尔积 : 对乘
--select 数据 from 数据源1,数据源2...;

--注意:
        --查询同名字段需要指明出处

--查询所有员工信息,这个员工所在的部门信息
--查询的数据: 员工信息,部门信息
--数据的来源: emp dept
select * from emp,dept;

--表连接条件
--等值连接
select e.*,d.* from emp e,dept d where e.deptno=d.deptno;
select e.empno,d.dname,e.deptno from emp e,dept d where e.deptno=d.deptno;

--查询10,30部门的员工 信息以及所在部门信息
select e.*,d.* from emp e,dept d where e.deptno=d.deptno and e.deptno in(10,30) order by sal;

--等值连接条件的字段一般为主外键关联关系或者同名字段,但是主要类型相同就可
select * from emp e,dept d where e.ename=d.dname;

--非等值连接

--查询员工的信息以及工资等级信息
select grade from salgrade where 1500 between losal and hisal;

select * from emp e,salgrade s where e.sal between s.losal and s.hisal;

--自连接
--一张包作为2个身份,自己与自己连接
--查询由上级存在的员工信息以及上级经理人信息
--数据: 员工信息,经理人信息
--来源: 员工表emp e1, 经理人表 emp e2
select * from emp e1,emp e2 where e1.mgr=e2.empno;

--内连接: 满足连接条件才保留,不满足连接条件不保留

--所有员工的员工信息以及上级经理人信息
--需求: 员工表中数据无论是否满足连接条件都要显示

--外连接 : 主表中的数据无论是否满足连接条件都显示
--左外连接: 左连接    表连接的位置,主表 在左边
--右外连接: 右连接    表连接的位置,主表 在右边
--员工表作为主表
--在连接条件的位置,主表的对面添加(+)
select * from emp e1,emp e2 where e1.mgr=e2.empno(+); -->  左连接
select * from emp e2,emp e1 where e1.mgr=e2.empno(+); -->  右连接


 

标签:--,查询,连表,emp,deptno,92,where,连接,select
来源: https://blog.csdn.net/wangjinju77777/article/details/119188034