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
  • 相关阅读:
    润乾V4导出TXT时自定义分隔符
    aix系统下的websphere的静默安装
    润乾V4报表放入WEBINF保护目录下如何实现
    初创公司谁来当你们的运维
    无密码身份验证:安全、简单且部署快速
    ASP .NET 如何在 SQL 查询层面实现分页
    世界那么大,你要去看看!
    你真的知道如何定义性能要求么?
    node-firefox 二三事
    轻轻修改配置文件完成 OpenStack 监控
  • 原文地址:https://www.cnblogs.com/ywx-vashon/p/4895779.html
Copyright © 2011-2022 走看看