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
  • 相关阅读:
    sqlserver 动态行转列
    c#指定日期格式
    The 14th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple
    Codeforces Round #410 (Div. 2)A B C D 暴力 暴力 思路 姿势/随机
    Codeforces Round #409 (rated, Div. 2, based on VK Cup 2017 Round 2) A B C D 暴力 水 二分 几何
    poj 2096 概率dp
    HDU 4405 概率dp
    Codeforces Round #408 (Div. 2) A B C 模拟 模拟 set
    Codeforces Round #301 (Div. 2)A B C D 水 模拟 bfs 概率dp
    HDU 1005 矩阵快速幂
  • 原文地址:https://www.cnblogs.com/51python/p/10613606.html
Copyright © 2011-2022 走看看