MYSQL 常用函数汇总

92 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第9天,点击查看活动详情

简介

最近在翻阅以前做的 MYSQL 学习笔记,在这里做下汇总,如果问题,欢迎大家总结指正,笔者在这里谢谢大家了。

常用操作

count

  • count(*)获取总记录,包含为 null;

  • count(列名)获取总记录,不包含 null。

  • 示例:

    • select count(*) from emp where tableName; 符合条件的所有记录总数。

    • select count(comm) from tableName; comm这个字段中不为空的元素总数。

    • select count(distinct job ) from tableName; 取得工作岗位的个数

sum()

  

  • sum可以取得某一个列的和,null 会被忽略

  • 示例:select sum(age) from tableName;会自动忽略为 null 的 age

  • 注意:select sum(age+size) from tableName;不会忽略为 null 的 size,需要需要将为 null 的转为 0 进行合计

  • select sum(age+ifnull(size,0)) from tableName; 

平均值avg()

  • 注意事项同sum()

最大值max()

  • 示例:select max(str_to_date (hiredate, '%Y-%m-%d')) from tableName;// 取得最晚入职得员工

最小值min()

  • 示例:select min(sal) from tableName;// 取得最低薪水

  • 转小写:lower()

    • 示例:select lower(ename) from tableName;
  • 转大写:upper()

    • 示例:select * from tableName where job=upper('manager');
  • 截取字符串:substr(要截取的字段,开始位置(从1开始),要截取的长度)

    -示例:select substr(applabel,1,4) from appconfig;

  • 获取字段长度:length()

    -示例:select length(appid) from appconfig;

  ⑤去除首尾空格,不包含中间的空格

  示例:select * from emp where job=trim(upper('manager '));

  • 将字符串转为日期:str_to_date(字符串,匹配格式)

    • select * from emp where HIREDATE=str_to_date('1981-02-20','%Y-%m-%d');
  • 获取当前日期:now()

  • 千分位:format(需要插入千分位的字段,位数)

    -示例:select empno, ename, Format(sal, 2) from emp;

  • 四舍五入:round()

    • 示例:select round(123.56);
  • 生成随机数:rand()

    • 示例:select rand();
  • case..when..then..else..then..end

    • 示例:如果 job 为 MANAGERG 薪水上涨 10%,如果 job 为 SALESMAN 工资上涨 50%

    • select empno, ename, job, sal, case job when 'MANAGER' then sal1.1 when 'SALESMAN' then sal1.5 end as newsal from emp;

  • ifnull()

  • 示例:select ifnull(comm,0) from emp;

  • 如果comm为空,则设置为0

结束

以上仅为个人学习总结,如有雷同,正常。