一、数学函数
abs(x) |
返回x的绝对值 |
bin(x) |
返回x的二进制(oct返回八进制,hex返回十六进制) |
ceiling(x) / ceil(x) |
返回不小于x的最小整数值 |
floor(x) |
返回不大于x的最大整数值,返回值转化为一个BIGINT |
greatest(x1,x2,...,xn) |
返回集合中最大的值 |
least(x1,x2,...,xn) |
返回集合中最小的值 |
ln(x) |
返回x的自然对数 |
log10(x) |
返回x的以10为底的对数 |
log(x,y) |
返回x的以y为底的对数 |
mod(x,y) |
返回x/y的模(余数) |
pi() |
返回pi的值(圆周率) |
rand() / rand(x) |
返回0到1内的随机值,可以通过提供一个参数(种子)使rand()随机数生成器生成一个指定值 |
round(x,y) |
返回参数x的四舍五入的有y位小数的值 |
sign(x) |
返回代表数字x的符号的值 |
sqrt(x) |
返回非负数的平方根,传如负数返回NULL |
truncate(x,y) |
返回数字x截短为y位小数的结果 |
pow(x,y) /power(x,y) |
返回x的y次方 |
exp(x) |
返回值e(自然对数的底)的x次方 |
radians(x) |
将参数x由角度转换为弧度 |
degrees(x) |
将参数x由弧度转换为角度 |
sin(x) / asin(x) |
返回x的正弦和反正弦 |
cos(x) / acos(x) |
返回x的余弦和反余弦 |
tan(x) / atan(x) / cot(x) |
返回x的正切、反正切,余切 |
二、聚合函数(常用于group by从句的select查询中)
avg(col) |
返回指定列的平均值 |
count(col) |
返回指定列中非null值的个数 |
min(col) |
返回指定列的最小值 |
max(col) |
返回指定列的最大值 |
sum(col) |
返回指定列的所有值之和 |
group_concat(col) |
返回由属于一组的列值连接组合而成的结果 |
三、字符串函数
length(str) |
返回一个字符串的字节长度,中文utf8一个汉字3个字节 |
bit_length(str) |
返回一个字符串的比特长度 |
char_length(str) |
返回一个字符串的字符长度 |
concat(s1,s2...sn) |
将s1,s2...sn连成一个字符串。如果参数包含NULL,则返回值为NULL |
concat(sep,s1,s2...sn) |
将s1,s2...sn连成一个字符串,并用sep分割 |
insert(str,x,y,instr) |
将字符串str从第x位置开始,y个字符长的子串替换为字符串instr,返回结果 |
lower(str) / lcase(str) |
返回将字符串str中所有字符改变为小写后的结果 |
upper(str) / ucaes(str) |
返回将字符串str中所有字符转变为大写后的结果 |
left(str,x) / right(str,x) |
返回字符串str中最左边 / 最右边 的x个字符 |
lpad(str1,len,str2) / rpad(str1,len,str2) |
返回字符串str1,其左边 / 右边 由str2填充至len长度。如果str长度大于len返回值缩短至len长度 |
ltrim(str) / rtrim(str) / trim(str) |
删除字符串左侧 / 右侧 / 两侧 的空格 |
trim(str1 from str2) |
删除字符串str2两侧所有的子字符串str1 |
repeat(str,x) |
返回由x个str组成的重复字符串 |
space(n) |
返回由n个空格组成的字符串 |
replace(str,s1,s2) |
将字符串str中的s1子串替换成s2 |
strcmp(str1,str2) |
比较两个字符串的大小,一模一样返回0。按照分类次序,第一个小于第二个返回-1,其它返回1 |
substring(str,x,len) / mid(str,x,len) |
返回一个将str字符串从第x个字串,截取len长度后的子串 |
locate(str1,str) / position(str1 in str) / instr(str,str1) |
返回子串str1在str字符串中的位置 |
reverse(str) |
将字符串str反转 |
elt(n,s1,s2...sn) |
返回第n个字符串,如果n大于长度返回NULL |
field(s,s1,s2...sn) |
返回字符串s在列表s1..sn中第一次出现的位置,如果找不到返回0 |
find_in_set(str,list) |
分析逗号分隔的list列表,如果发现str,返回str在list中的位置 |
ascii(char) |
返回字符的ascii码值 |
quote(str) |
用反斜杠转义str中的单引号 |
四、时间函数
curdate() / currnet_date() +0 |
返回当前的日期 年-月-日 +0表示不带横线,不写默认有横线 |
curtime() / current_time() |
返回当前的时间 时:分:秒 |
now() / sysdate() / localtime() / current_timestamp() |
返回当前的时间 年--秒 |
unix_timestamp(date) |
返回一个unix时间戳 |
from_timestamp(date) |
把一个时间戳转换成普通格式的时间 |
utc_date() / utc_time() |
返回UTC的日期和时间 |
month(date) /monthname(date) |
返回date中的月份 / 英文月份 |
dayname(date) / dayofweek(date) / weekday(date) |
返回日期对应的工作日的英文名称 / 阿拉伯数字(1是周日) / (0是周一) |
week(date) / weekofyear(date) |
返回date是一年中的第几周 |
dayofyear(date) / dayofmonth(date) |
返回日期是一年的第几天 / 一月的第几天 |
year(date) / quarter(date) / hour(date) /minute(date)/second(date) |
返回知道时间的年 / 季度 / 小时 / 分钟 / 秒 |
extract / 例 select extract(year_month '2018-12-12 12:12:12') |
提取日期和时间值 |
time_to_sec |
将时间值(HH:MM:SS)转换成秒 |
date_format(date,format) |
将时间和日期格式化 |
date_add() / adddate() |
日期计算 |
date_sub() / subdate() |
日期计算 |
add_time() |
日期计算 |
subtime() |
日期计算 |
date_diff() |
日期计算 |
五、控制流函数
if(expr,v1,v2) |
如果expr成立,返回v1,不成立,返回v2 |
ifnull(v1,v2) |
如果v1不是空,返回v1,否则返回v2 |
nullif(v1,v2) |
如果v1=v2,返回null,否则返回v1 |
case when[test1] then [result1]...else [default] end |
如果testn是真,则返回resultn,否则返回default |
case [test] when[val1] then [result]...else [default]end |
如果test和valn相等,则返回resultn,否则返回default |
六、加密函数
password(str) |
返回字符串str的加密版本,这个加密过程是不可逆转的,和unix密码加密过程使用不同的算法 |
md5(str) |
计算字符串的md5校验和 |
encode(str,key) |
使用key作为密钥加密字符串str,调用encode()的结果是一个二进制字符串,它以blob类型存储 |
decode(str,key) |
使用key作为密钥解密加密字符串str |
sha(str) |
计算字符串str的安全散列算法(sha)校验和 |
aes_encrypt(str,key) |
返回用密钥key对字符串str利用高级加密标准算法加密后的结果,调用aes_encrypt的结果是一个二进制字符串,以blob类型存储 |
aes_decrypt(str,key) |
返回用密钥key对字符串str利用高级加密标准算法解密后的结果 |
encrypt(str,salt) |
使用unixcrypt()函数,用关键词salt(一个可以惟一确定口令的字符串,就像钥匙一样)加密字符串str |
select encrypt('root','salt');
select encode('xufeng','key');
select decode(encode('xufeng','key'),'key'); #加解密放在一起
select aes_encrypt('root','key');
select aes_decrypt(aes_encrypt('root','key'),'key');
select md5('');
select sha('');
七、系统信息函数
version() |
返回mysql服务器的版本 |
connection_id() |
查看当前用户的连接数 |
database() / schema() |
返回当前的数据库名 |
user() / system_user() |
返回当前登陆的用户名 |
charset(str) |
返回字符串的字符集 |
found_rows() |
返回最后一个select查询进行检索的总行数 |
八、其它函数
format(x,y) |
格式化函数 |
cast() |
改变数据类型的函数 |
convert() |
修改字符集 |
benchmark(count,expr) |
重复执行expr函数 |
最新文章
- 用JS实现的类似QQ密码的输入特效
- linux epoll模型使用注意点
- LeetCode4:Add Two Numbers
- 【openGL】画圆
- SGU 134 Centroid
- .net I/O操作 导图
- HttpWebRequest BeginGetResponse EndGetResponse
- DevOps的几个场景
- php与html实现交互的基本操作
- SpringMVC用到的jar包
- JDBC 连接mysql数据库
- PIVOT 行列相转
- docker资料---添加阿里docker加速镜像
- <;6>;Cocos Creator​​​​​​​调试
- JPA(三):JPA基本注解
- Lua------------------unity与lua的热更新
- visualSVN server安装使用
- 《DSP using MATLAB》Problem 3.17
- Java虚拟机(三):JVM垃圾回收机制
- Unity学习笔记(5):动态加载Prefab
热门文章
- 2019-03-11-day009-函数定义
- xargs用法
- CentOS7下-bash: nano: command not found
- Maven3 package时报 &#39;version&#39; contains an expression but should be a constant
- For all entries in
- web(四)html表单类标签
- viewport是左下角开始的
- tmux允许鼠标滚动
- git命令收集(记得持续更新)
- Skflow mac安装 for tensorflow-0.8.0