Oracle数据库学习——数据操纵语言(DML)之连接查询

3.数据操纵语言(DML)

3.1 连接查询

—(1)内连接

—(2)外连接
左外连接(LEFT JOIN)   返回左边表的所有行
右外连接(RIGHT JOIN) 返回右边表的所有行,实现
全外连接(FULL JOIN)   返回两个表的所有数据

交叉连接(CROSS JOIN)  返回连接表中所有数据行的笛卡尔积


(1)内连接:
SQL> --查询所有员工及其所在的部门信息
SQL> select e.ename,d.dname
     from emp e join dept d
     on e.deptno = d.deptno;
解释:
这条查询语句用到了表的别名,这里给emp表和dept表都起了别名e和d,主要是说要查询出员工的姓名和员工相对应所在的部门名称,这里还用到了表的连接‘join’,即emp表连接dept表,条件是‘e.deptno = d.deptno’。


SQL> --查询所有的管理者
SQL> select e1.ename,e2.ename
    
 from emp e1,emp e2
     where e1.mgr = e2.empno;
解释:
这里用到了自连接查询,即根据自身表的关系来查询,这里将emp表用了两次别名e1和e2,查找出e1中的与员工的管理者的编号 = e2中的员工编号,即查询出所有员工的对应管理者。


(2)左外连接:
SQL> --查询所有部门及其部门下的员工(没有与员工的部门也要查询出来)
SQL> select d.dname,e.ename
     from dept d left joinemp e
     on d.deptno = e.deptno;
解释:
左外连接可以简单的理解为将左边表的所有信息要显示出来,而右边表的显示与否则根据on后的条件来定。




SQL> --查询所有部门编号大于20及其部门下的员工
SQL> select d.*,e.ename
     from dept d left join emp e
     on d.deptno = e.deptno
     where d.deptno > 20;


(3)全外连接:显示表的所有信息。
——SELECT e.empno,e.ename,d.dname FROM EMP e FULL JOIN dept d ON e.deptno=d.deptno





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值