zoukankan      html  css  js  c++  java
  • mysql特殊使用

    1、按照 job 和薪水倒序排序:

    select ename,job,sal from emp order by job desc,sal desc;


    2、substr()截取子串

    该函数接收3个参数:substr(被截取字段名称,起始下标,截取长度),起始下标从1开始。

    查询并显示所员工姓名的第二个字母:

    select substr(ename,2,1) from emp;

    3、length()获取字段长度

    取得员工姓名长度

    select ename,length(ename) as nameLength from emp;


    4、查询员工姓名及补助,如果补助为Null设置为0;

    select ename,ifnull(comm,0) from emp;


    5、case…when…then…else…end

    匹配工作岗位,当为MANAGER时,薪水上调10%,当为SALESMAN时,薪水上调50%,其它岗位薪水不变。

    case job
        when ‘MANAGER’  then sal * 1.1
        when ‘SALESMAN’then sal * 1.5
        else    sal
    end
    

    在select语句中使用:

    select ename, sal, job, 
    
        (case job
            when ‘MANAGER’  then sal * 1.1
            when ‘SALESMAN’then sal * 1.5
            else    sal
        end) as newsal
    
    from emp;


    6、round()四舍五入

    该函数接收两个参数round(数字,保留的小数位数)

    查看员工薪水保留1位小数:

    select round(sal,1) from emp;


    7、使用str_to_date()函数查询02-20-1981年入职的员工:

    select ename,hiredate from emp where hiredate = str_to_date('02-20-1981','%m-%d-%Y'); 


    8、date_format()格式化日期
    该函数接收两个参数,date_format(日期类型数据,’日期格式’)

    查询员工的入职日期,以’10-12-1980’的格式显示到窗口中;

    select ename,date_format(hiredate,'%m-%d-%Y') hiredate from emp ;


    9、取得补助不为空的员工数:

    select count(comm) from emp;
    

    说明:count()函数不会统计数据为null的记录



    10、distinct去除重复记录

    作用:将查询结果中某一字段的重复记录去除掉
    用法:distinct 字段名或 distinct字段名1, 字段名2…
    注意:distinct只能出现在所有字段最前面,后面如果有多个字段及为多字段联合去重。

    查询公司有哪些工作岗位:

    select distinct job from emp;

    去除部门编号deptno和工作岗位job重复的记录:

    select distinct job,deptno from emp;

    11、group by 分组

    计算每个工作岗位的最高薪水,并且按照由低到高进行排序:

    select job,max(sal) as maxsal from emp group by job order by maxsal;


    12、计算除了manager之外的每个工作岗位的最高薪水:

    select job,max(sal) as maxsal from emp where job <> 'MANAGER' group by job;

    13、having过滤
    作用:如果想对分组的数据进行过滤,需要使用having子句。

    找出每个工作岗位的平均薪水,要求显示平均薪水大于2000的:

    select job,avg(sal) from emp group by job having avg(sal) > 2000;

    14、where和having区别

    • where和having都是为了完成数据的过滤,它们后面都是添加条件;
    • where是在 group by之前完成过滤;
    • having是在group by之后完成过滤;

    注:一个的SQL语句如下:

    select 
        xxxx
    from
        xxxx
    where 
        xxxx
    group by
        xxxx
    having
        xxxx
    order by
        xxxx
     
     







    参考:http://www.monkey1024.com/database/814
  • 相关阅读:
    使用DBUtils获取Blob类型数据
    关于 JupyterLab 与 Pandas 资源整理
    关于 Conda 在 MacOS Catalina 环境变量问题
    推荐一个符合 OIDC 规范的 JAVA 客户端
    关于 Chrome 的 Kiosk 模式
    Kubernetes 中的服务发现与负载均衡
    Prometheus 监控领域最锋利的“瑞士军刀”
    CD 基金会、Jenkins、Jenkins X、Spinnaker 和 Tekton 的常问问题
    Installing on Kubernetes with NATS Operator
    升级 ASP.NET Core 3.0 设置 JSON 返回 PascalCase 格式与 SignalR 问题
  • 原文地址:https://www.cnblogs.com/51python/p/10613606.html
Copyright © 2011-2022 走看看