本篇文章介绍MySQL中一些常用的函数,文章部分内容由笔者看其他大牛博客总结而来,还有尚大宋老师的MySQL精讲,仅做笔记。
数据库函数: 可以理解为java中的方法,可以把我们经常使用的代码封装起来,想要使用直接调用即可,提高对数据库的操作效率
函数又分为内置函数和自定义函数,我们这里只写了内置函数的笔记
SQL中包含以下七种类型的函数:
1. 基本函数
1.1数值函数
ABS(x) 返回x的绝对值
SING(X) 返回X的符号
PI() 返回圆周率的值
CELL(32.01) 与CELLING(32.99) 天花板函数 取值33 去除小数位向上取整
FLOOR(32.32) 地花板函数 ,取值32 去除小数位向下取整
MOD(12,5) 返回12 / 5 的余数
ACOS(float_expr) 返回角(以弧度表示),它的余弦值近似于指定的浮点表达式。
ASIN(float_expr) 返回角(以弧度表示),它的正弦值近似于指定的浮点表达式。
ATAN(float_expr) 返回角(以弧度表示),它的正切值近似于指定的浮点表达式。
ATN2(float_expr1, float_expr2) 返回角(以弧度表示),它的正切值在两个近似的浮点表达式之间。
CEILING(num_expr) 返回大于或等于数值表达式的最小整数。
COS(float_expr) 返回以浮点表达式表示的近似于指定角度(以弧度表示)的余弦三角函数的值。
COT(float_expr) 返回以浮点表达式表示的近似于指定角度(以弧度表示)的余切三角函数的值。
DEGREES(num_expr)返回数值表达式表示的弧度值对应的度值。
EXP(float_expr) 根据指定的近似浮点表达式,返回指数值。
FLOOR(num_expr) 返回小于或等于数值表达式的最大整数
LOG(float_expr) 根据指定的近似浮点表达式,返回自然对数值。
LOG10(float_expr) 根据指定的近似浮点表达式,返回以为底的对数。
POWER(num_expr,y) 返回幂为y的数值表达式的值。
RADIANS(num_expr) 返回数值表达式表示的度值对应的弧度值。
SIGN(num_expr) 对正数执行+1操作,对负数和零执行-1操作。
SIN(float_expr) 返回以浮点表达式表示的近似于指定角度(以弧度表示)的正弦三角函数的值。
SQUARE(float_expr) 返回浮点表达式的平均值。
SQRT(float_expr) 返回指定的近似浮点表达式的平方根。
TAN(float_expr) 返回以浮点表达式表示的近似于指定角度(以弧度表示)的正切三角函数的值。
rand() 得到一个随机数 0-1之间
rand(x) 得到一个随机数,x是加载因子,如果两个随机数加载因子相同则的得到的结果也是相同的
ROUND(123.456) 四舍五入截断操作,舍弃小数位
ROUND(123.456,x) 保留x位小数
2.字符串类型函数
Expr1+expr2 返回两个表达式的组合形式的字符串。
ASCII(char_expr) 返回表达式最左边字符的ASCⅡ代码值。
CHAR(int_expr) 返回到之间的整数表达式的ASCⅡ字符值。如果输入的值不在有效范围内,则返回NULL。
CHARINDEX('pattern',char_expr) 返回字符表达式中指定模式的起始位置。
DIFFERENCE(char_expr1,char_expr2) 根据比较两个字符表达式的相似度,返回到之间的值。表示匹配度最佳。
LEN(char_expr) 返回字符表达式的长度。
LOWER(char_expr) 将字符表达式全部转换为小写。
LTRIM(char_expr) 返回删除掉前面空格的字符表达式。
PATINDEX('%pattern%',expr) 返回表达式中模式第一次出现的起始位置。返回表示不存在模式形式。
REPLICATE(char_expr,int_expr) 返回重复指定次数的字符表达式产生的字符串。
REVERSE(char_expr) 反转字符表达式。
RIGHT(char_expr,int_expr) 返回从字符表达式最右端起根据指定的字符个数得到的字符。
RTRIM(char_expr) 返回删除掉其后空格的字符表达式。
SOUNDEX(char_expr) 评估两个字符串的相似度后得到的位代码。
SPACE(int_expr) 返回包含指定空格数的字符串。
STR(float_expr[,length[,decimal]]) 返回浮点表达式的字符串表示法。
STUFF(char_expr1,start,length,char_expr2) 使用字符表达式替换字符表达式的一部分字符,从指定的位置开始替换指定的长度。
SUBSTRING(char_expr,start,length) 返回从字符表达式的指定位置开始,截取指定长度得到的字符集。
日期时间函数类型:
curdate 和current_date //两个函数作用相同,返回当前系统的日期值
curtime 和current_time //两个函数作用相同,返回当前系统的时间值
now // 返回当前系统的日期和时间值
sysdate // 返回当前系统的日期和时间值
date //获取指定日期时间的日期部分
time //获取指定日期时间的时间部分
month //获取指定日期中的月份
montname //获取指定日期中的月份英文名称
dayname //获取指定曰期对应的星期几的英文名称
year //获取年份,返回值范围是 1970〜2069
dayofweek //获取指定日期对应的一周的索引位置值
Week //获取指定日期是一年中的第几周,返回值的范围是否为 0〜52 或 1
〜53
dayofyear //获取指定曰期是一年中的第几天,返回值范围是1~366
dayofmonth 和 day //两个函数作用相同,获取指定日期是一个月中是第几天,返回值范围是1~31
time_to_sec //将时间参数转换为秒数
sec_to_time //将秒数转换为时间,与TIME_TO_SEC 互为反函数
datediff //返回两个日期之间的相差天数
流程控制函数:
if(value,value1,value2)
if null(value1,value2)
case when(条件一 then 结果1 when 条件2 结果2 ...[else resultn] end
相当于java中的ifelse
case pxpe when 常量1 then 值1 when 常量2 then 值2 [else 值n] end
相当于java中的case
聚合函数:
AVG(表达式) 返回表达式中所有的平均值。仅用于数字列并自动忽略NULL值。
COUNT(表达式) 返回表达式中非NULL值的数量。可用于数字和字符列。
COUNT(*) 返回表中的行数(包括有NULL值的列)。
COUNT(具体字段) 只会统计非null 的行数,有null则不计数
MAX(表达式) 返回表达式中的最大值,忽略NULL值。可用于数字、字符和日期时间列。
MIN(表达式) 返回表达式中的最小值,忽略NULL值。可用于数字、字符和日期时间列。
SUM(表达式) 返回表达式中所有的总和,忽略NULL值。仅用于数字列。