zoukankan      html  css  js  c++  java
  • MySQL之表连接(内外连接和重命名的使用)

    #要多练练

     

    1.连接查询根据连接方式分为

    内连接

       等值连接

       非等值连接

       自连接

    外连接

        左外连接(左连接)

       右外连接(右连接)

     

    当多张表进行连接查询,若没有任何条件进行限制,会

    发生什么现象?

    会出现笛卡尔积,即两张表的记录的条数的乘积

     

    ##哪里用as?为什么这里不能用as?

     

    #sql92:内连接中的等值连接

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

     

    #SQL99:内连接中的等值连接,优点:对表连接不满意的话,

    #可以再追加where进行过滤。

    select e.ename,d.dname 
    
    from emp e join dept d
    
    on e.deptno=d.deptno;

     

    #SQL99:内连接中的非等值连接?

    #eg:显示薪水等级、部门名、薪水等

    select e.ename,e.sal,s.grade
    
    from emp e join salgrade s
    
    on e.sal
    
    between s.losal and s.hisal;

     

    #找出每个员工的上级领导的名称,说明领导也从属于员工表,所以要

    #把一张表看成两张表(a、b两张表)。

    select a.ename empname,b.ename
    
    leadrname from emp a inner join
    
    emp b on a.mgr=b.empno;
    
    select a.ename empname,b.ename 
    
    leadername from emp a join emp b
    
    on a.mgr=b.empno;

     

    #找出每个员工对应的部门名称,要求显示全部

    #部门名全部显示

    select e.ename,d.dname 
    
    from emp e 
    
    right join dept d 
    
    on d.deptno=d.deptno;

     

    #什么时候用外连接?什么时候用内连接?

    #内连接的记录条数小于等于外连接,内连接

    #是会显示相匹配的信息,对于不完整的信息不会显示

    #而外连接(无条件的全部显示)是会对全部进行显示的

    #左连接是将左边全部显示出来,而右连接是将右边全部

    #显示出来,若无记录则用null来匹配

     

    #案例:找出每个员工对应的领导名,要求显示
    #所有的员工

    select a.ename empname,b.ename leadername
    from emp a
    left join emp b
    on a.mgr=b.empno;


    #把一张表看成a、b两张表

    #案例:找出每一个员工对应的部门名称,以及
    #该员工对应的工资等级。要求显示员工名、部门
    #名、工资等级


    #多张表进行连接的语法格式:
    select
    XXX
    from
    a
    join
    b
    on
    条件
    join
    c
    on
    条件;
    原理:a和b连接,再用a和c连接。

    select
    e.ename,d.dname,s.grade
    from
    emp e
    join
    dept d
    on
    e.deptno=d.deptno;
    join
    salgrade s
    on
    e.sal between s.losal and s.hisal;

     

    成年人的世界没有那么多的童话,也没有那么多的逆袭。
  • 相关阅读:
    javascript命名规范
    angularjs指令参数transclude
    angular中的compile和link函数
    angularjs中的directive scope配置
    sublime text3同时编辑多行
    jquery中on/delegate的原理
    defered,promise回顾
    导航栏滚动到顶部后固定
    angularjs揭秘
    $stateParams
  • 原文地址:https://www.cnblogs.com/shijinglu2018/p/8858676.html
Copyright © 2011-2022 走看看