zoukankan      html  css  js  c++  java
  • oracle表复杂查询--多表查询

    多表查询是指基于两个和两个以上的表或是视图的查询,在实际应用中,查询单个表可能不能满足你的要求,如显示sales部门位置和其员工的姓名,这种情况下需要使用到dept表和emp表。

     
     

    select * from emp,deptno;

    从dept表中选出第一条记录,然后与emp表的每一条记录进行匹配,14*5=56。

     

    ?       显示雇员名、雇员工资及所在部门的名字【笛卡尔集】

    select ename,sal,dept.dname from emp,dept where emp.deptno=dept.deptno;

    【笛卡尔集】在多表查询的时候,如果不带任何条件,则会出现笛卡尔集,怎样避免笛卡尔集?规定:多表查询的条件是至少不能少于表的个数-1

    ?       如何显示部门号为10的部门名、员工名和工资

    select dept.dname,ename,sal from emp,dept where emp.deptno=dept.deptno and emp.deptno=10;

    ?       显示各个员工的姓名、工资,及其工资的级别

    select ename,sal,salgrade.grade from emp,salgrade where emp.sal between salgrade.losal and salgrade.hisal;

    在多表查询的时候,需不需要加表名:如果两个表或多个表的列同名,则需要加表名区分,如果不同名,则可以不加,建议都加上表名,可读性较好。

    注意:建议大家,在进行多表查询的时候,使用别名,这样方便。

    扩展要求:

    ?       显示雇员名、雇员工资及所在部门的名字,并按部门排序。

    select ename,sal,dept.dname from emp,dept where emp.deptno=dept.deptno order by dept.dname;

  • 相关阅读:
    学习进度02
    dataX windows10安装
    架构漫谈 阅读笔记03
    质量属性及战术
    架构漫谈 阅读笔记02
    2020.12.12收获
    2020.12.11收获
    2020.12.10收获
    2020.12.9收获
    2020.12.8收获
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11113687.html
Copyright © 2011-2022 走看看