本篇文章介绍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) 返回以浮点表达式表示的近似于指定角度(以弧度表示)的正切三角函数的值。

 

数据库function的用法_数据库

 rand() 得到一个随机数 0-1之间 

rand(x) 得到一个随机数,x是加载因子,如果两个随机数加载因子相同则的得到的结果也是相同的

数据库function的用法_数据库_02

 ROUND(123.456) 四舍五入截断操作,舍弃小数位

ROUND(123.456,x) 保留x位小数

数据库function的用法_浮点_03

 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) 返回从字符表达式的指定位置开始,截取指定长度得到的字符集。

数据库function的用法_日期时间_04

 

日期时间函数类型:

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 //返回两个日期之间的相差天数

流程控制函数:

数据库function的用法_数据库function的用法_05

 

if(value,value1,value2)

数据库function的用法_日期时间_06

 if null(value1,value2)

数据库function的用法_字符串_07

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则不计数

数据库function的用法_数据库_08

 

MAX(表达式) 返回表达式中的最大值,忽略NULL值。可用于数字、字符和日期时间列。

MIN(表达式) 返回表达式中的最小值,忽略NULL值。可用于数字、字符和日期时间列。

SUM(表达式) 返回表达式中所有的总和,忽略NULL值。仅用于数字列。