MySQL 常用函数

2021-05-19  本文已影响0人  深吸一口气

1、常用函数

1.1、数学函数

函数 说明
abs(x) 返回 x 的绝对值
pi() 返回圆周率 π,默认显示 6 位小数
sqrt(x) 返回非负数的 x 的二次方根
mod(x, y) 返回 x 被 y 除后的余数
ceil(x)、ceiling(x) 返回不小于 x 的最小整数
floor(x) 返回不大于 x 的最大整数
round(x)、round(x, y) 前者返回最接近于 x 的整数,即对 x 进行四舍五入;后者返回最接近 x 的数,其值保留到小数点后面 y 位,若 y 为负值,则将保留到 x 到小数点左边 y 位
sign(x) 返回参数 x 的符号,-1 表示负数,0 表示 0,1 表示正数
pow(x, y)、power(x, y) 返回 x 的 y 次乘方的值
exp(x) 返回 e 的 x 乘方后的值
log(x) 返回 x 的自然对数, x 相当于基数 e 的对数
log10(x) 返回 x 的基数为 10 的对数
radians(x) 返回 x 由角度转化为弧度的值
degrees(x) 返回 x 由弧度转化为角度的值
sin(x)、asin(x) 前者返回 x 的正弦,其中 x 为给定的弧度值;后者返回 x 的反正弦值,x 为正弦
cos(x)、acos(x) 前者返回 x 的余弦,其中 x 为给定的弧度值;后者返回 x 的反余弦值,x 为余弦
tan(x)、atan(x) 前者返回 x 的正切,其中 x 为给定的弧度值;后者返回 x 的反正切值,x 为正切
cot(x) 返回给定弧度值 x 的余切

1.2、字符串函数

函数 说明
char_length(str) 计算字符串字符个数
concat(s1, s2, s3, ...) 返回连接参数产生的字符串,一个或多个待拼接的内容,任意一个为null则返回值为null
concat_ws(x, s1, s2, ...) 返回多个字符串拼接之后的字符串,每个字符串之间有一个 x
insert(s1, x, len, s2) 返回字符串 s1,其子字符串起始于位置 x,被字符串 s2 取代 len 个字符
lower(str)、lcase(str) 将 str 中的字母全部转换成小写
upper(str)、ucase(str) 将 str 中的字母全部转换成大写
left(s, n)、ringht(s, n) 前者返回字符串 s 从最左边开始的 n 个字符;后者返回字符串 s 从最右边开始的 n 个字符
lpad(s1, len, s2)、rpad(s1, len, s2) 前者返回 s1,其左边由字符串 s2 填补到 len 字符长度,假如 s1 的长度大于 len,则返回值被缩短至 len 字符;后者返回 s1,其右边由字符串 s2 填补到 len 字符长度,假如 s1 的长度大于 len,则返回值被缩短至 len 字符
ltrim(s)、rtrim(s) 前者返回字符串 s,其左边所有空格被删除;后者返回字符串 s,其右边所有空格被删除
trim(s) 返回字符串 s 删除了两边空格之后的字符串
trim(s1 from s) 删除字符串 s 两端所有子字符串 s1,未指定 s1 的情况下则默认删除空格
repeat(s, n) 返回一个由重复字符串 s 组成的字符串,字符串 s 的数目等于 n
space(n) 返回一个由 n 个空格组成的字符串
replace(s, s1, s2) 返回一个字符串,用字符串 s2 替代字符串 s 中所有的字符串 s1
strcmp(s1, s2) 若 s1 和 s2 中所有的字符串都相同,则返回 0;根据当前分类次序,第一个参数小于第二个则返回 -1,其他情况返回 1
substring(s, n, len)、mid(s, n, len) 两个函数作用相同,从字符串 s 中返回一个第 n 个字符开始、长度为 len 的字符串
locate(str1, str)、position(str1 in str)、instr(str, str1) 三个函数作用相同,返回子字符串 str1 在字符串 str 中的开始位置(从第几个字符开始)
reverse(s) 将字符串 s 反转
elt(n, str1, str2, str3, ...) 返回第 n 个字符串

1.3、日期和时间函数

函数 说明
curdate()、current_date() 将当前日期按照YYYY-MM-DD或者YYYYMMDD格式的值返回,具体格式根据函数用在字符串或是数字语境中而定
current_timestamp()、localtime()、now()、sysdate() 这四个函数作用相同,返回当前日期和时间值,格式为YYYY-MM-DD HH:MM:SS 或者YYYYMMDDHHMMSS,具体格式根据函数用在字符串或数字语境中而定
unix_timestamp()、unix_timestamp(date) 前者返回一个格林尼治标准时间1970-01-01 00:00:00到现在的秒数;后者返回一个格林尼治标准时间1970-01-01 00:00:00到指定时间的秒数
from_unixtime(date) 和 unix_timestamp 互为反函数,把 unix 时间戳转换为普通格式的时间
utc_date()、utc_time() 前者返回 utc(世界标准时间)日期值,其格式为YYYY-MM-DDYYYYMMDD;后者返回当前 utc 时间值,其格式为YYYY-MM-DDYYYYMMDD。具体使用哪种取决于函数用在字符串还是数字语境中
month(date)、monthname(date) 前者返回指定日期中的月份;后者返回指定日期中的月份的名称
dayname(d)、dayofweek(d)、weekday(d) dayname 返回 d 对应的工作日的英文名称,如 sunday、monday等;dayofweek 返回的对应一周中的索引,1 表示周日、2 表示周一;weekday 表示 d 对应的工作日索引,0 表示周一,1 表示周二
week(d)、weekofyear(d) 前者计算日期 d 是一年中的第几周;后者计算某一天位于一年中的第几周
dayofyear(d)、dayofmonth(d) 前者返回 d 是一年中的第几天;后者返回 d 是一月中的第几天
year(date)、quarter(date)、minute(time)、second(time) year 返回指定日期对应的年份;quarter 返回 date 对应一年中的季度,范围是 1~4;minute 返回 time 对应的分钟数;second 返回指定时间的秒数
extrace(type from date) 从日期中提取一部分,type 可以是 year、year_month、day_hour、day_microsecond、day_minute、day_second
time_to_sec(time) 返回已转换为秒的 time 参数,转换公式为 3600 * 小时 + 60 * 分钟 + 秒
sec_to_time() 和 time_to_sec 互为反函数,将秒值转换为时间格式
date_add(date, interval expr type)、add_date(date, interval expr type) 返回将起始时间加上 expr type 之后的时间,比如 date_add("2010-12-31 23:59:59", interval 1 second) 表示的就是把第一个时间加 1 秒
date_sub(date, interval expr type)、subdate(date, interval expr type) 返回将起始时间减去 expr type 之后的时间
addtime(date, expr)、subtime(date, expr) 前者进行 date 的时间加操作;后者进行 date 的时间减操作

1.4、条件判断函数

函数 说明
if(expr, v1, v2) 如果 expr 是 true 则返回 v1,否则返回 v2
ifnull(v1, v2) 如果 v1 不为 null,则返回 v1,否则返回 v2
case expr when v1 then r1 [when v2 then v2] [else rn] end 如果 expr 等于某个 vn,则返回对应位置 then 后面的结果,如果与所有值都不相等,则返回 else 后面的 rn

1.5、系统信息函数

函数 说明
version() 查看 MySQL 版本号
connection_id() 查看当前用户的连接数
user()、current_user()、system_user()、session_user() 查看当前被 MySQL 服务器验证的用户名和主机的组合,一般这几个函数的返回值是相同的
charset(str) 查看字符串 str 使用的字符集
collation() 查看字符串怕列方式

1.6、加密函数

函数 说明
password(str) 从原明文密码 str 计算并返回加密后的字符串密码,注意这个函数的加密是单向的(不可逆),因此不应将它应用在个人的应用程序中,而应该只在 MySQL 服务器的鉴定系统中使用
md5(str) 为字符串算出一个 MD5 128比特校验和,该值以 32 位十六进制数字的二进制字符串形式返回
encode(str, pswd_str) 使用 pswd_str 作为密码,加密 str
decode(crypt_str, pswd_str) 使用 pswd_str 作为密码,解密加密字符串 crypt_str,crypt_str 是由 encode 函数返回的字符串

1.7、其他函数

函数 说明
format(x, n) 将数字 x 格式化,并以四舍五入的方式保留小数点后 n 位,结果以字符串形式返回
conv(n, from_base, to_base) 不同进制数之间的转换,返回值为数值 n 的字符串表示,由 from_base 进制转换为 to_base 进制
inet_aton(expr) 给出一个作为字符串的网络地址的点地址表示,返回一个代表该地址数值的整数,地址可以是 4 或 8 比特
inet_ntoa(expr) 给定一个数字网络地址(4 或 8比特),返回作为字符串的该地址的点表示
benchmark(count, expr) 重复执行 count 次表达式 expr,它可以用于计算 MySQL 处理表达式的速度,结果值通常是 0(0 表示很快,并不是没有速度)。另一个作用是它在 MySQL 客户端内部报告语句执行的时间
convert(str using charset) 使用字符集 charset 表示字符串 str
上一篇下一篇

猜你喜欢

热点阅读