zoukankan      html  css  js  c++  java
  • MYSQL-内外自连接-判断函数


    -- 内连接查询 inner JOIN
    select * | 字段 feom 表1 join 表名2 join 表名3.
    on 表的连接条件 where 筛选条件 group by 分组之之后的筛选条件

    -- 或者
    select * | 字段 feom 表1,表2,表3 where join 表的连接条件 .
    及筛选条件 group by having 分组之后的筛选条件

    -- 外连接查询
    -- 左外连接查询
    -- 显示左表中的全部数据 ,右边对应行没有数据的部分使用null填充
    select * | 字段 feom 表1 join 表名2 join 表名3.
    on 表的连接条件 where 筛选条件 group by 分组之之后的筛选条件
    -- 右外连接right JOIN
    -- 显示表中的全部数据,左表显示的时满足链接条件
    -- 如果右表显示的数据比左表显示的多 左表对应行没有数据的部分使用null填充
    select * | 字段 feom 表1 join 表名2 right join 表名3.
    on 表的连接条件 where 筛选条件 group by 分组之之后的筛选条件

    -- 自连接查询
    -- 列出所有员工的直接上级的名字
    -- 把这个一张表当做两张表使用
    SELECT employee.ename , manager.ename from emp as employee
    join emp as mannge on employee.managerid =manger.eid

    -- 入职时间比这个员工信息
    select employee.ename as 员工姓名,employee.hiredata as 员工的入职时间,
    manager.ename as 领导姓名,manager.hiredata as 领导的入职时间 from emp
    as employee join emp as manager on employee.manager = manager.eid where
    manager.hiredata > employee.hiredata;

    -- 条件判断
    -- IFNULL(列名,v)的结果,否则取列名对应的值
    -- 求整个公司的员工的平均薪资
    SELECT AVG(IFNULL(expr1,0)) as 平均薪资 from emp;-- 把平均未null元排除在外

    -- 求整个工资的员工薪资和
    SELECT SUM (esal)/count(*) as 薪资和 from emp;
    -- if(判断条件,v1,v2)
    -- 判断条件成立的话取 取v1,v2
    SELECT avg(if(esal IS NOT null),esal,0)) FROM emp;

    -- case 表达式 when v1 THEN r1 when v2 then r2... else rn END
    -- 表达式的结果v1的话 就取r1的结果
    -- 对于列出的vn都不是 就取rn结果

    -- 根据员工的薪资 列一下员工的等级
    -- 6000以下 等级1
    -- 6000-7000 等级2
    -- 7000-8000 等级3
    -- 8000-9000 等级4
    -- 9000-10000 等级5
    -- 10000以上等级6
    SELECT *,
    case when esal between 0 and 6000 then '等级1',
    when esal BETWEEN 6001 and 7000 then '等级2',
    when esal BETWEEN 7001 and 8000 then '等级3',
    when BETWEEN 8001 and 9000 then '等级4',
    when BETWEEN 9001 and 10000 then '等级5',
    when esal >10000 then '等级6'
    END
    from emp;

  • 相关阅读:
    朋友圈、浏览器分享实现
    Cannot read property 'appendChild' of null
    Nginx报错:Sorry, the page you are looking for is currently unavailable. Please try again later.
    RGBA(0,0,0,0)调色
    windows下 python中报错ImportError: No module named 'requests'
    一起谈.NET技术,C# 基础概念之延迟加载 狼人:
    一起谈.NET技术,为类提供软件约定 狼人:
    一起谈.NET技术,asp.net控件开发基础(6) 狼人:
    一起谈.NET技术,详解.NET程序集的加载规则 狼人:
    一起谈.NET技术,Linq学习笔记 狼人:
  • 原文地址:https://www.cnblogs.com/cheng10/p/13618296.html
Copyright © 2011-2022 走看看