首页 > 数据库技术 > 详细

MySQL常见函数

时间:2019-08-02 10:40:47      阅读:68      评论:0      收藏:0      [点我收藏+]

函数的概念

  • 类似于编程语言中定义的方法,提高编写SQL语句的效率(对外暴露接口,隐藏内部细节,提高代码重用)

  • 调用

    SELECT 函数名(实参列表) FROM 表;
  • 分类

    • 单行函数

      CONCAT(),LENGTH(),IFNULL()
    • 分组函数(统计函数,聚合函数)

      SUM()

单行函数

字符函数

  • LENGTH 字符串长度

    SELECT LENGTH('abc');
    # 结果是3
    SELECT LENGTH('你好hello')
    #结果是11
    #MySQL使用utf-8字符集,一个汉字占3个字节,一个字母占一个字节
  • CONCAT 字符串连接

    SELECT CONCAT(last_name,'_',first_name) 姓名 FROM employee;
    #将姓名使用下划线连接起来显示
  • UPPER,LOWER 字符串大小写变化

    SELECT UPPER('AbC');
    #结果 ABC
    SELECT LOWER('AbC);
    #结果 abc
  • SUBSTR 字符串求字串

    SELECT SUBSTR('123456',3,2);
    #结果 34
    # SUBSTR(原始字符串,开始索引,字符长度)
    #MySQL中索引从1开始
  • INSTR 返回子串的第一次出现的索引

    SELECT INSTR('123456','34');
    #结果 3
    SELECT INSTR('123456','78');
    #结果 0
    #INSTR(原始字符串,子串)
    #如果原始字符串中可以找到子串就返回子串的第一次出现的索引,否则返回0
  • TRIM 去除两边的指定字符串

    SELECT TRIM('  AAA  ');
    #结果'AAA'
    SELECT TRIM('A','AABBAABBAA');
    #结果'BBAABB'
    #TRIM(指定字符串 from 原始字符串)
    #如果没有指定字符就默认是空格
  • LPAD,RPAD 左填充,右填充

    SELECT LPAD('11',4,'0');
    #结果 '0011'
    #LPAD(原始字符串,结果长度,填充字符串)
    #如果结果长度小于原始字符串长度,那么将会发生截断
  • REPLACE 替换

    SELECT REPLACE('123456','456','321');
    #结果 '123321'
    #REPLACE(原始字符串,被替换字符串,替换字符串)

数学函数

  • ROUND 四舍五入

    SELECT ROUND(1.3);
    #结果 1
    SELECT ROUND(-1.6);
    #结果 -2
    #ROUND(目标数字,四舍五入到小数点后几位)
  • CEIL 向上取整

    SELECT CEIL(1.00);
    #结果 1
    SELECT CEIL(1.1);
    #结果 2
  • FLOOR 向下取整

    SELECT FLOOR(1.00);
    #结果 1
    SELECT FLOOR(1.1);
    #结果 1
  • TRUNCATE 截断

    SELECT TRUNCATE(1.2345,2);
    #结果 1.23
    #TRUNCATE(目标数字,截断后保留小数点后几位)
  • MOD 效果等同%

    SELECT MOD(10,3);
    #结果 1
    #MOD(a,b)=a-a/b*b

日期函数

  • NOW 返回当前系统日期及时间

    SELECT NOW();
    #结果 2019-05-05 19:17:02
  • CURDATE 返回当前日期

    SELECT CURDATE();
    #结果 2019-05-05
  • CURTIME 返回当前时间

    SELECT CURTIME();
    #结果 19:19:26
  • YEAR MONTH DAY,,, 返回指定的部分

    SELECT YEAR(NOW());
    #结果 2019
    SELECT HOUR(NOW());
    #结果 19
  • STR_TO_DATE 将字符串按照指定格式转换为日期

    技术分享图片

    SELECT STR_TO_DATE('1999-7-1','%Y-%c-%d')
    #结果 1999-07-01
  • DATE_FORMAT

    SELECT DATE_FORMAT(NOW(),'%Y年%c月%d日');
    #结果 2019年5月05日

其他函数

SELECT VERSION();
#查看当前版本
SELECT DATEBASE();
#查看当前数据库
SELECT USER();
#查看当前用户

流程控制函数

  • IF

    SELECT IF(1>0,'YES','NO');
    #结果 YES
    #IF(条件语句,条件为真返回值,条件为假返回值),类似于三元运算符
  • CASE

    SELECT concat(first_name,last_name),
    case actor_id
    when 1 then 'No.1'
    else 'loser'
    end as 评价
    from actor
    #结果 PENELOPEGUINESS   No.1
    #  NICKWAHLBERG   loser
    #  EDCHASE    loser
    #CASE 要判断的字段或表达式
    #WHEN 常量1 THEN 要返回的值或语句1;
    #WHEN 常量2 THEN 要返回的值或语句2;

分组函数

求和 平均值 最大值 最小值 统计个数
SUM AVG MAX MIN COUNT
SELECT SUM(population),AVG(Population),MAX(Population),MIN(Population)
FROM city;
#结果
#3504682236 10500000    1429559884  42
  • SUM,AVG一般处理数值型

  • MAX,MIN,COUNT处理任意值

  • 以上函数都忽略NULL

  • 可以和DISTINCT搭配实现去重

    SELECT SUM(DISTINCT,population)
    FROM city;
    

==count()语法细则==

  • count(*)
    • 包括所有列,返回表中的记录数,相当于统计表的行数,在统计结果的时候,不会忽略列值为NULL的记录。
  • count(列名)
    • 只包括列名指定列,返回指定列的记录数,在统计结果的时候,会忽略列值为NULL的记录(不包括空字符串和0),即列值为NULL的记录不统计在内。

MySQL常见函数

原文:https://www.cnblogs.com/redo19990701/p/11286671.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!