前言
在MySQL数据库中,为了实现更多功能有时会使用一些函数,包括系统定义函数:可供直接调用,还有用户自定义函数。根据作用范围不同分为单行函数和多行函数,单行函数作用于一行返回一个函数值,多行函数作用于多行,但返回一个值,比较常见的多行函数有聚合函数,分组函数。
单行函数
单行函数主要包括字符函数,数字函数,日期函数等。主要针对对应的数据类型完成一系列操作。
语法格式:select 函数(参数)from dual,dual是虚表,当查找没有表中的信息,还仍要满足select from语法,这时需要虚表。此时查询的返回值就是函数作用于对应参数后的结果。也可以在查询过程中对应字段上使用某个函数,起到方便查询,帮助查询的作用。
字符函数
大小写转换:
LOWER('str') | 将str全部改成小写 |
UPPER('str') | 将str全部改成大写 |
效果展示:
字符处理:
CONCAT('str1','str2') | 字符串连接函数。连接括号内的字符串参数。 |
LENGTH('str') | 统计字符串长度。 |
LPAD(作用域,填充后的长度,填充内容) | 左填充,不满足填充总长度的即进行从字符串左侧填充。 |
RPAD(作用域,填充后的长度,填充内容) | 右填充,不满足填充总长度的即进行从字符串右侧填充。 |
TRIM(str) | 去除字符串str头部和尾部的空格 |
REPLACE(str1,str2,str3) | 将str1中的str2用str3代替。 |
SUBSTR(str1,m,n) | 从str1的第m个字符开始,取长度为n的一个子串。如果n省略,则取到结尾。 |
INSTR(str1,str2) | 查询子串str2在原str1中出现的位置(字符串首位从1开始)。 |
效果展示:
数字函数
ROUND(m,n) | 四舍五入函数,m是被操作的数字,n是小数点前/后几位。 n>0,从点后n位开始,n<0,从点前n位开始,执行四舍五入。n>0时,看点后n+1位判断四舍五入,n<0时,看当前位判断四舍五入。 另外一种解释是求参数m的四舍五入的值,保留n位小数。 |
MOD(x,y) | 返回x/y的模。 |
ABS(x) | 返回某个数的绝对值。 |
SQRT(x) | 返回某个数的平方根。 |
RAND() | 返回0-1内的随机数。 |
CEIL(x),FLOOR(x) | 对x向上取整(返回大于等于x的最小整数);对x向下取整(返回小于等于x的最大整数)。 |
效果展示:
日期函数
有的时候数据的收集会涉及到入职时间等关于日期数据方面的处理,这时借助日期函数能够很好的实现查询。
CURDATE() | 返回当前日期。 |
CURTIME() | 返回当前时间。 |
YEAR() MONTH() DAY() | 返回指定的年月日。 |
DATEDIFF(date1,date2) | 返回date1-date2的计算结果,仅将日期部分用于计算 计算日期差异天数等等。 |
效果展示:
这里日期也需要引号引起来。个人感觉datediff的功能比较方便,能够很快计算出两个日期之间的差异天数,算入职时间,入学时间等需要时间差的这种数据会比较方便。
总结
这里仅列出了一些常见的字符函数,数字函数和日期函数,不过通过具体实践能够体会到这些SQL函数的强大功能,特别注意的是,一些常见函数的记忆与使用以及函数参数代入要保持准确。