一、MySQL函数概述
MySQL提供了很多功能强大、方便易用的函数,在进行数据库管理以及数据的查询和操作时,帮助我们提高对数据库的管理效率。
函数分类: 单行、多行函数。
二、单行函数语法
2.1 语法:
函数名[(参数1,参数2,…)]
其中的参数可以是以下之一:变量、列名、表达式
2.2 单行函数特征
- 单行函数对单行操作
- 每行返回一个结果
- 有可能返回值与原参数数据类型不一致
- 单行函数可以写在SELECT、WHERE、ORDER BY子句中
- 有些函数没有参数,有些函数包括一个或多个参数
- 函数可以嵌套
三、常用函数分类
- 数学函数
- 字符串函数
- 日期和时间函数
- 流程控制函数
- 其他函数
3.1 数学函数
abs()
求绝对值
pi()
返回pi
sqrt(x)
开平方根
mod(x)
求余数
ceil(x)\ceiling(x)
向上取整
floor(x)
向下取整
round()
四舍五入取整
round(x,y)
四舍五入保留小数点y位取整
truncate(x,y)
截断
rand()
返回随机数?
sign(x)
返回符号为,整数返回1负数返回-1,0就返回0
pow(x,y)\power(x,y)
返回x数据求y次方后的结果
3.2 字符串函数
char_length(x)
求字符的个数
length(x)
返回字节个数
concat(str1,str2,…)
字符串拼接,如果有一个参数是null那么全部返回都是null
concat_ws(sepe0rator,str1,str2,…)
字符串拼接,拼接的分隔符使用seperator,如果被拼接的参数是null,则会忽略
insert(str,position,len,newStr)
在str的指定位置开始取len个字符并用newStr来代替
lower(x)
转成小写
upper(x)
转成大写
left(str,len)
返回字符串str的左边开始计算共返回len个字符
right(str,len)
返回字符串str的右边开始计算共返回len个字符
lpad(str,len,newStr)
对str的左边开始用newStr填充直到填充后的字符串长度为len为止
rpad(str,len,newStr)
对str的右边开始用newStr填充直到填充后的字符串长度为len为止
ltrim(x)
去除字符串x的左边空格
rtrim(x)
去除字符串x的右边空格
trim(x)
去除字符串x左右两边的隔空
trim( delStr from str)
去除字符串str中左右两边的delStr字符串
repeat(str,times)
返回一个新字符串,该字符串由于字符串str重复times次组成
space(n)
返回n个由于空格组成的字符串
replace(str,source,target)
返回str字符串中source子串被target字符串替换的结果
strcmp(x,y)
返回字符串x和y的比较结果,如果是相等返回0,x大于y返回1,否则返回-1
substring(str,startPosition[,len])
如果len没有写,返回的是字符串str中从startPosition开始截取到末尾字符串
如果len有指定,返回的是字符串str中从stratPosition开始截取len个字符串
reverse(x)
对字符串x逆序(倒序)
ELT(position,str1,str2,…)
返回的是参数中str1,str2,…参数中第position个位置的字符串
3.3 日期和时间函数
CURDATE()和CURRENT_DATE() :获取当前日期函数;
NOW():返回服务器的当前日期和时间;
CURTIME():返回当前时间,只包含时分秒;
UTC_DATE():返回世界标准时间日期函数;
UTC_TIME():返回世界标准时间函数;
TIMEDIFF(expr1, expr2):返回两个日期相减相差的时间数;
DATEDIFF(expr1, expr2):返回两个日期相减相差的天数;
DATE_ADD(date,INTERVAL expr type):日期加上一个时间间隔值;
DATE_SUB(date,INTERVAL expr type):日期减去一个时间间隔值;
DATE(date)、TIME(date)、YEAR(date):选取日期时间的各个部分:
EXTRACT(unit FROM date):从日期中抽取出某个单独的部分或组合;
DAYOFWEEK(date) 、DAYOFMONTH(date) 、DAYOFYEAR(date):返回日期
在一周、一月、一年中是第几天
DAYNAME、MONTHNAME:返回日期的星期和月份名称;
DATE_FORMAT(date,format):格式化日期;
TIME_FORMATE(time,formate):格式化时间;
(下一篇 ….)
四、其它函数
database()
获取当前使用的数据库实例名
version()
获取数据的版本
user()
获取当前登录用户
md5(明文)
获取明文MD5后的摘要信息
password(明文)
获取明文加密后的密文,mysql使用该函数加密用户的密码
案例
1 | select database() from dual; |