zoukankan      html  css  js  c++  java
  • oracle 内连接、外连接、自然连接、交叉连接练习

    oracle 内连接、外连接、自然连接、交叉连接练习

    --查询员工信息
    select * from emp;
    --查询部门信息
    select * from dept;
    
    --需求:查询员工姓名、薪资和所在部门名称、部门编号
    
    --1.使用交叉连接(笛卡尔积)14条记录
    select ename,sal,dname,dept.deptno from emp,dept where emp.deptno=dept.deptno;
    select ename,sal,dname,d.deptno from emp e,dept d where e.deptno=d.deptno;
    
    --2.使用内连接(表1 inner join 表2 on 2个表连接条件)
    select ename,sal,dname,d.deptno from emp e inner join dept d on e.deptno=d.deptno
    select ename,sal,dname,d.deptno from emp e join dept d on e.deptno=d.deptno
    select ename,sal,dname,deptno from emp e join dept d using(deptno)
    
    --3.使用外连接(表1 outer join 表2 on 2个表连接条件)
    --(1)左外连接  left   左表为基表(主),匹配表(从),主表的记录为主,从表没有匹配的记录以null值填充
    select ename,sal,dname,d.deptno from emp e left outer join dept d on e.deptno=d.deptno
    select ename,sal,dname,d.deptno from dept d left outer join emp e on e.deptno=d.deptno
    select ename,sal,dname,d.deptno from emp e ,dept d where e.deptno(+)=d.deptno
    --(2)右外连接 right outer join 右表为基表,左表为匹配表
    select ename,sal,dname,d.deptno from emp e right outer join dept d on e.deptno=d.deptno
    --(3)全外连接full outer join,都可以当成主表,表1有的数据表2没有,表2就用null填充,表2有的数据表1,表1用null填充
    select ename,sal,dname,d.deptno from emp e full outer join dept d on e.deptno=d.deptno
    
    --4.自然连接(类似内连接) natural join,默认找寻2个表当中相同的字段
    select ename,sal,dname,deptno from emp e natural join dept d 
    
    --查询员工上司的名字,显示员工的姓名及其经理的姓名
    --5.自连接
    select e1.ename 员工姓名,e2.ename 经理姓名 from emp e1,emp e2 where e1.mgr=e2.empno
    
  • 相关阅读:
    认识Cookie和状态管理
    python之requests库使用问题汇总
    如何掌握所有的程序语言--王垠
    非 GUI 模式运行 JMeter 压力测试
    Python 如何将字符串转为字典
    python之operator操作符函数
    python3使用xlrd、xlwt、xlutils、openpyxl、xlsxwriter操作excel
    《敏捷软件测试:测试人员与敏捷团队的实践指南》
    Jmeter跨线程组传递变量
    Jmeter获取当前时间、历史时间、未来时间的方式
  • 原文地址:https://www.cnblogs.com/hgnulb/p/9904019.html
Copyright © 2011-2022 走看看