mysql常用函数汇总

一. 单行函数

1.1 字符函数

  • length(); 获取参数值的字节个数 例:SELECT LENGTH('axiba');
  • concat(); 拼接字符串 例:SELECT CONCAT(name1,'_',name2) 姓名 FROM test;
  • upper()、lower(); 改变大小写 例:SELECT UPPER('axiba'); SELECT LOWER('Axiba');
  • substr()、substring(); 截取字符串 例:
    # 截取从指定索引处后面所有字符 SELECT SUBSTR('axiba',2) str; #截取从指定索引处指定字符长度的字符 SELECT SUBSTR('axiba',1,3) str;
  • instr(); 返回子串第一次出现的索引,如果找不到返回0 例:SELECT INSTR('axiba','x') AS idx;
  • trim(); 去除字符串两边指定字符默认为空格 例:SELECT TRIM('xx' FROM 'xxaxibaxx') AS str;
  • lpad(); 用指定的字符实现左填充指定长度 例:SELECT LPAD('axiba',6,'*') AS str;
  • rpad (); 用指定的字符实现右填充指定长度 例:SELECT RPAD('axiba',8,'*') AS str;
  • replace(); 替换 例:SELECT REPLACE('阿西吧','西','东') AS str;

1.2 数学函数

  • round(); 四舍五入保留小数位数 例:SELECT ROUND(1.56); SELECT ROUND(1.567,2);
  • ceil(); 向上取整 例:SELECT CEIL(1.2);
  • floor(); 向下取整 例:SELECT FLOOR(1.2);
  • truncate(); 截断 例:SELECT TRUNCATE(0.69999,1);
  • mod(); 取余 例:SELECT MOD(10,-3);

1.3 日期函数

  • now(); 返回当前系统日期+时间 例:SELECT NOW();
  • curdate(); 返回当前系统日期,不包含时间 例:SELECT CURDATE();
  • dateDiff(); 返回两个日期之间的天数 例: SELECT dateDiff(NOW(),'%y年%m月%d日') AS d;
  • curtime(); 返回当前时间,不包含日期 例:SELECT CURTIME();
  • YEAR(); 可以获取指定的部分,年、月、日、小时、分钟、秒 例:SELECT YEAR(hiredate) 年 FROM test;
  • str_to_date(); 将字符通过指定的格式转换成日期 例:SELECT STR_TO_DATE('1998-3-2','%Y-%c-%d') AS str_date;
  • date_format(); 将日期转换成字符 例:SELECT DATE_FORMAT(NOW(),'%y年%m月%d日') AS str_date;

1.4 其他函数

  • VERSION(); 查看当前数据库管理系统版本号
  • DATABASE(); 查看当前数据库
  • USER(); 查看当前用户

1.5 控制函数

  • if(); 流程控制 例:SELECT IF(2<1,'大','小');
  • case(); 流程控制
    语法1: case 要判断的字段或表达式
    when 常量1 then 要显示的值1或语句1;
    when 常量2 then 要显示的值2或语句2;

    else 要显示的值n或语句n;
    end
    例:SELECT 原始工资,id, CASE id WHEN 30 THEN 原始工资*1.1 WHEN 40 THEN 原始工资*1.2 WHEN 50 THEN 原始工资*1.3 ELSE 原始工资 END AS 新工资 FROM table;
    语法2: case
    when 条件1 then 要显示的值1或语句1
    when 条件2 then 要显示的值2或语句2
    。。。
    else 要显示的值n或语句n
    end
    例:SELECT 工资, CASE WHEN 工资>20000 THEN 'A' WHEN 工资>15000 THEN 'B' WHEN 工资>10000 THEN 'C' ELSE 'D' END AS 工资级别 FROM table;

二、分组函数

  • sum() 求和 例:SELECT SUM(salary) FROM table;
  • avg ()平均值 例:SELECT AVG(salary) FROM table;
  • max() 最大值 例:SELECT MAX(salary) FROM table;
  • min() 最小值 例:SELECT MIN(salary) FROM table;
  • count() 计算个数 例:SELECT COUNT(salary) FROM table;

分组函数注意事项:
1、sum、avg一般用于处理数值型max、min、count可以处理任何类型
2、以上分组函数都忽略null值
3、可以和distinct搭配实现去重的运算(去重之后再求和)
4、count函数的单独介绍一般使用count(*)用作统计行数
5、和分组函数一同查询的字段要求是group by后的字段

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值