zoukankan      html  css  js  c++  java
  • 表的连接操作

    在数据库中对于数据表的连接操作一共提供了两种:

    内连接:也称等值连接在where中消除笛卡尔积的条件就是采用了内连接方式进行的

    外连接: 内连接中只能显示等值满足的条件,不满足的条件则无法显示,如果希望显示特定表中的全部数据就要用要外连接

    外连接分3种

       在Oracle中使用(+)表示连接

    1. 左外连接(左连接) 左关系属性=右关系属性(+) 表示左外连接      
    2. 右外连接(右连接) 左关系属性(+)=右关系属性 表示右外连接
    3. 全外连接(全连接)
    • 示例一 (内连接)

       将emp和dept表联合查询

    SELECT * FROM EMP E,DEPT D
    WHERE E.DEPTNO=D.DEPTNO;
    • 示例二(右外连接)

    增加右外连接显示部门表中40部门的信息

    SELECT * FROM EMP E,DEPT D
    WHERE E.DEPTNO(+)=D.DEPTNO;
    • 示例三(左外连接)

    首先在emp表中插入一条没有部门编号的记录

    INSERT INTO emp(empno,ename,job,mgr,hiredate,sal,comm,deptno)
    VALUES(9999,'test','CLERK',7369,SYSDATE,800,100,NULL);

    左外连接显示编号9999的信息

    SELECT * FROM emp e,dept d
    WHERE e.deptno=d.deptno(+);

    自身关联:

    • 示例四

    查询出每个员工的编号,姓名及上级领导的编号和姓名

    SELECT e.empno,e.ename,e.mgr emp表中领导编号,m.empno m表中的领导编号,m.ename
    FROM emp e,emp m
    WHERE e.mgr=m.empno(+);
    • 示例五

          查询在1981入职的全部员工的编号,姓名,入职日期(年-月-日显示),职位,领导姓名,员工月工资sal ,年总工资(sal+comm)*12,工资等级,部门编号,部门名称,部门位置,并县且要求这些员工的月工资在1500~3500之间,将最后的结果按年总工资降序排序,有果年工资相等,按入职时间升序排序

    复制代码
    SELECT e.empno,e.ename,to_char(e.hiredate,'yyyy-mm-dd') 入职日期,e.job,e.sal 月基本工资,(e.sal+NVL(e.comm,0))*12 yearsal,
    m.ename 领导姓名,
    DECODE(s.grade,1,'E等工资',
                    2,'D等工资',
                    3,'C等工资',
                    4,'B等工资',
                    5,'A等工资'
    ) 工资等级,
    d.deptno,d.dname,d.loc
    FROM emp e,emp m,salgrade s,dept d
    WHERE to_char(e.hiredate,'yyyy')='1981'
        AND e.mgr=m.empno(+)
        AND e.sal BETWEEN s.losal AND s.hisal
        AND e.deptno=d.deptno(+)
        AND e.sal BETWEEN 1500 AND 3500
    ORDER BY yearsal,e.hiredate ASC;
    复制代码
  • 相关阅读:
    在线整数序列百科全书
    非常完整的线性DP及记忆化搜索讲义
    洛谷P2858 奶牛零食 题解 区间DP入门题
    HDU3394 Railway 题解(边双连通分量)
    POJ1144 Network 题解 点双连通分量(求割点数量)
    LibreOJ6279. 数列分块入门 3 题解
    LibreOJ 6278. 数列分块入门 2 题解
    LibreOJ 6277. 数列分块入门 1 题解
    洛谷P1020 导弹拦截 题解 LIS扩展题 Dilworth定理
    CF1272E. Nearest Opposite Parity 题解 广度优先搜索
  • 原文地址:https://www.cnblogs.com/Soprano/p/10659004.html
Copyright © 2011-2022 走看看