• Oracle--外连接


      

    按部门统计员工人数:部门号,部门名称,各部门人数

    select d.deptno, d.dname, count(e.empno)
    from dept d, emp e
    where d.deptno = e.deptno
    group by d.deptno, d.dname

    上诉结果没有出现40号部门的人数,原因是员工表中没有40号部门的员工

    ==》期望在连接条件不成立的条件下,也要把 40 号部门给显示出来

    select d.deptno, d.dname, count(e.empno)
    from dept d, emp e
    where d.deptno = e.deptno(+)
    group by d.deptno, d.dname

    左外连接:(+)号写在(=)号的右边

    自连接:把一张表看成两张表
    --查询员工信息, 老板信息
    显示: XXX 的老板是 XXX

    1.

    select e.ename b.ename
    from emp e, emp b
    where e.mgr = b.empno;

    2.

    select e.ename || ' 的老板是 ' || b.ename
    from emp e, emp b 
    where e.mgr = b.empno;

    3.需要把员工表的每一条记录都显示出来

    select e.ename || ' 的老板是 ' || b.ename
    from emp e, emp b 
    where e.mgr = b.empno (+);

    4.

    select e.ename || ' 的老板是 ' || nvl(b.ename, '他自己')
    from emp e, emp b 
    where e.mgr = b.empno (+);
  • 相关阅读:
    ssh 免密
    SCALA XML pattern attrbute(属性)
    数据库分区的概念
    Intellij IDEA 快捷键整理
    笔记--Linux
    netstat
    笔记--MySQL相关操作
    ip地址
    使用ASMCMD管理Oracle ASM
    使用RMAN执行Oracle ASM数据迁移
  • 原文地址:https://www.cnblogs.com/wanghao-boke/p/13234957.html
Copyright © 2020-2023  润新知