zoukankan      html  css  js  c++  java
  • 数据库的多表查询(详细案例分析)

    作者:Vashon  

    时间:20150414

    所用数据库:Oracle11g



                                             多表查询 (如果理解以下查询,相信你可以举一反三)


    ##查询一个表中有多少条记录:select count(*) from 表名称; //特别是数据量太大是先用这条语句;


              *范例:查询出每一位雇员的编号,姓名,职位,部门名称,位置;

              select e.empno,e.ename,e.job,d.deptno,d.loc from emp e,dept d where e.deptno=d.deptno;  //确定表的关联字段:emp.deptno=dept.deptno;


              *范例:要求查询出每一个雇员的姓名,职位,领导的姓名:select e.ename,e.job,m.ename from emp e,emp m where e.mgr=m.empno; //第一个emp表(雇员):取得雇员姓名,职位,领导编号; 第二个emp表(领导):取得雇员的姓名(领导的姓名);


              *范例:查询出每个雇员的编号,姓名,基本工资,职位,领导的姓名,部门名称及位置.
              *确定所需要的数据表:emp表:每个雇员的编号,姓名,基本工资,职位;
                                  emp表(领导):领导的姓名;
                                  dept表:部门的名称及位置.
              *确定已知的关联字段:雇员和部门:emp.deptno=dept.deptno;
                                  雇员和领导:emp.mgr=emp.empno;

              select e.empno,e.ename,e.sal,e.job,m.ename,d.dname,d.loc from emp e,emp m,dept d where e.mgr=m.empno and e.deptno=d.deptno;


              *范例:要求查询出每个雇员的编号,姓名,工资,部门名称,工资所在公司的工资等级.
              *确定所需要的数据表:emp表:雇员的编号,姓名,工资;
                                   dept表:部门等级;
                                   salgrade表:工资等级;
              *确定已知的关联字段:雇员和部门:emp deptno=dept.deptno;
                                   雇员和工资等级:emp sal between salgrade losal and salgrade hisal;
              select e.empno,e.ename,e.sal,d.dname,decode(s.grade,1,'第五等工资',2,'第四等工资',3,'第三等工资',4,'第二等工资',5,'第一等工资') gradeinfo from emp e,dept d,salgrade s 
    where e.deptno=d.deptno and e.sal between s.losal and s.hisal;
               
     *范例:查询出公司各个工资等级雇员的数量、平均工资
     select s.grade, count(e.empno), avg(e.sal) 
     from salgrade s,emp e where e.sal BETWEEN s.losal and s.hisal 
     group by s.grade;          


    *连接方式的改变:1.左(外)连接:left outer join...on;
                     2.右(外)连接:right outer join...on;

                     3.全(外)连接:full outer join...on;  //把两张表中没有的数据都显示;





    版权声明:本文为博主原创文章,未经博主允许不得转载。

    Stay Hungry, Stay Foolish, Walking in Life
  • 相关阅读:
    LeetCode 977 有序数组的平方
    LeetCode 24 两两交换链表中的节点
    LeetCode 416 分割等和子集
    LeetCode 142 环形链表II
    LeetCode 106 从中序与后序遍历序列构造二叉树
    LeetCode 637 二叉树的层平均值
    LeetCode 117 填充每个节点的下一个右侧节点
    LeetCode 75 颜色分类
    redhat 7.4 挂载ntfs格式的u盘并且使用
    redhat 查看CPU frequency scaling(CPU频率缩放)
  • 原文地址:https://www.cnblogs.com/ywx-vashon/p/4895779.html
Copyright © 2011-2022 走看看