mysql数据库中提供了很丰富的函数。mysql函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数,可以简化用户的操作。


简单介绍几类函数的使用范围:

  1. 数学函数: 这类函数只要用于处理数字。这类函数包括绝对值函数、正弦函数、余弦函数、获取随机数函数等。
  2. 字符串函数:这类函数主要用于处理字符串。其中包括字符串连接函数、字符串比较函数、将字符串的字母变成小写或大写字母的函数、获取子串的函数等。
  3. 日期和时间函数:这类函数主要用于处理日期和时间。其中包括取当前时间的函数、获取当前日期的函数、返回年份的函数、返回日期的函数等。
  4. 流程函数:这类函数主要用于在SQL语句中控制条件选择。其中包括IF语句、CASE语句、WHEN语句等。
  5. 系统信息函数:这类函数主要用于获取mysql数据库的系统信息。其中包括获取数据库名的函数、获取当前用户的函数、获取数据库版本的函数等。
  6. 加密函数:这类函数主要用于对字符串进行加密解密。其中包括字符串加密函数、字符串解密函数等。
  7. 其他函数:包括格式化函数、锁函数等。

1.数学函数



ABS(x)                      返回x的绝对值

CEIL(x),CEILING(x)          返回大于或等于x的最小整数(向上取整)

FLOOR(x)                    返回小于或等于x的最大整数(向下取整)

RAND()                      返回0~1的随机数

RAND(x)
                            返回0~1的随机数,x值相同时返回的随机数相同

SIGN(x)                     返回x的符号,x是负数、0、正数分别返回-1、0、1

PI()                        返回圆周率

TRUNCATE(x,y)               返回数值x保留到小数点后y位的值

ROUND(x)                    返回离x最近的整数(四舍五入)

ROUND(x,y)                  保留x小数点后y位的值,但截断时要四舍五入

POW(x,y),POWER(x,y)         返回x的y次方

SQRT(x)                     返回x的平方根

EXP(x)                      返回e的x次方

MOD(x,y)                    返回x 除以y以后的余数

LOG(x)                      返回自然对数(以e为底的对数)

LOG10(x)                    返回以10为底的对数

RADIANS(x)                  讲角度转换为弧度

DEGREES(x)                  讲弧度转换为角度

SIN(x)                      求正弦值

ASIN(x)                     求反正弦值

COS(x)                      求余弦值

ACOS(x)                     求反余弦值

TAN(x)                      求正切值

ATAN(x),ATAN(x,y)           求反正切值

COT(x)                      求余切值

2.字符串函数

CHAR_LENGTH(s)              返回字符串s的字符数

LENGTH(s)                   返回字符串s的长度

CONCAT(s1,s2,.....)         将字符串s1,s2等多个字符串合并为一个字符串

CONCAT_WS(x,s1,s2,....)     同COUCAT(s1,s2,.....),但是每个字符串之间要加上x

INSERT(s1,x,len,s2)         将字符串s2替换s1的x位置开始长度为len的字符串

UPPER(s),UCASE(s)           讲字符串s的所有字符都变成大写字母

LOWER(s),LCASE(s)           讲字符串s的所有字符都变成小写字母

LEFT(s,n)                   返回字符串s的前n个字符

RIGHT(s,n)                  返回字符串s的后n个字符

LPAD(s1,len,s2)             字符串s2来填充s1的开始处,使字符串长度达到len

RPAD(s1,len,s2)             字符串s2来填充s1的结尾处,使字符串长度达到len

LTRIM(s)                    去掉字符串s开始处的空格

RTRIM(s)                    去掉字符串s结尾处的空格

TRIM(s)                     去掉字符串s开始处和结尾处的空格

TRIM(s1 FROM s)             去掉字符串s中开始处和结尾处的字符串s1

REPEAT(s,n)                 将字符串s重复n次

SPACE(n)                    返回n个空格

REPLACE(s,s1,s2)            用字符串s2代替字符串s中的字符串s1

STRCMP(s1,s2)               比较字符串s1和s2

SUBSTRING(s,n,len)          获取从字符串s中的第n个位置开始长度为len的字符串

MID(s,n,len)                同SUBSTRING(s,n,len)

ATE(s1,s),POSTTION(s1  IN s)从字符串s中获取s1的开始位置

INSTR(s,s1)                 从字符串s中获取s1的开始位置

REVERSE(s)                  将字符串s的顺序反过来

ELT(n,s1,s2...)             返回第n个字符串

FIELD(s,s1,s2...)           返回第一个与字符串s匹配的字符串的位置

FIND_IN_SET(s1,s2)          返回在字符串s2中与s1匹配的字符串的位置

MAKE_SET(x,s1,s2...)        按x的二进制数从s1,s2......sn中选取字符串

3.日期和时间函数


CURDATE(),CURRENT_DATE()            返回当前日期

CURTIME(),CURRENT_TIME()            返回当前时间

NOW(),CURRENT_TIMESTAMP()

LOCALTIME(),SYSDATE()

LOCALTIMESTAMP()                    返回当前日期和时间

UNIX_TIMESTAMP()                    以UNIX时间戳的形式返回当前时间

UNIX_TIMESTAMP(d)                   将时间d以UNIX时间戳的形式返回

FROM_UNIXTIME(d)                    把UNIX时间戳的时间转换为普通格式的时间

UTC_DATE()                          返回UTC(国际协调时间)日期

UTC_TIME()                          返回UTC时间

MONTH(d)                            返回日期d中的月份值,范围是1~12

MONTHNAME(d)                        返回日期d中的月份名称,如january

DAYNAME(d)                          返回日期d是星期几,如Monday

DAYOFWEEK(d)                        返回日期d是星期几,1表示星期日,2表示星期2

WEEKDAY(d)                          返回日期d是星期几,0表示星期一,1表示星期2

WEEK(d)                             计算日期d是本年的第几个星期,范围是0-53

WEEKOFYEAR(d)                       计算日期d是本年的第几个星期,范围是1-53

DAYOFYEAR(d)                        计算日期d是本年的第几天

DAYOFMONTH(d)                       计算日期d是本月的第几天

YEAR(d)                             返回日期d中的年份值

QUARTER(d)                          返回日期d是第几季度,范围1-4

HOUR(t)                             返回时间t中的小时值

MINUTE(t)                           返回时间t中的分钟值

SECOND(t)                           返回时间t中的秒钟值

EXTRACT(type FROM d)                从日期d中获取指定的值,type指定返回的值,如YEAR,HOUR等

TIME_TO_SEC(t)                      将时间t转换为秒

SEC_TO_TIME(s)                      将以秒为单位的时间s转换为时分秒的格式

TO_DAYS(d)                          计算日期d到0000年1月1日的天数

FROM_DAYS(n)                        计算从0000年1月1日开始n天后的日期

DATEDIFF(d1,d2)                     计算日期d1到d2之间相隔的天数

ADDDATE(d,n)                        计算开始日期d加上n天的日期

ADDDATE(d, INTERVAL  expr type)     计算起始日期d加上一个时间段后的日期

SUBDATE(d,n)                        计算起始日期d减去n天的日期

SUBDATE(d, INTERVAL  expr type)     计算起始日期d减去一个时间段后的日期

ADDTIME(t,n)                        计算起始时间t加上n秒的时间

SUBTIME(t,n)                        计算起始时间t减去n秒的时间

DATE_FORMAT(d,f)                    按照表达式f的要求显示日期d

TIME_FORMAT(t,f)                    按照表达式f的要求显示时间t

GET_FORMAT(type,s)                  根据字符串s获取type类型数据的显示格式

4.条件判断函数

条件判断函数用来在SQL语句中进行条件判断。更加是否满足判断条件,SQL语句执行不同的分支。

4.1 IF(expr,v1,v2)函数

IF(expr,v1,v2)函数中,如果表达式expr成立,返回结果v1,否则,返回结果v2。

mysql> selectname,if(price>2,‘OK‘,‘ON‘) from food;

+--------------+-----------------------+

| name         | if(price>2,‘OK‘,‘ON‘) |

+--------------+-----------------------+

| 光磊饼干     | OK                    |

| 宪政牛奶     | OK                    |

| 兴周果冻     | ON                    |

| GG咖啡       | OK                   |

| XX奶糖       | OK                    |

+--------------+-----------------------+

5 rows in set (0.00sec)

4.2CASE函数

CASEWHEN expr1 THEN v1 [WHEN expr2 THEN v2...][ELSE vn] END

mysql> selectname,case when price =1.5 then ‘OK‘ when price >3.5 then ‘on my god‘ endfrom food;

+--------------+---------------------------------------------------------------------+

| name         | case when price =1.5 then ‘OK‘ whenprice >3.5 then ‘on my god‘ end |

+--------------+---------------------------------------------------------------------+

| 光磊饼干     | NULL                                                               |

| 宪政牛奶     | NULL                                                               |

| 兴周果冻     | OK                                                                  |

| GG咖啡       | on my god                                                          |

| XX奶糖       | on my god                                                          |

+--------------+---------------------------------------------------------------------+

5 rows in set (0.00sec)

5.系统信息函数


VERSION()                       返回数据库的版本号

CONNECTION_ID()                 返回服务器的连接数,也就是到现在为止mysql服务的连接次数

DATABASE(),SCHEMA()             返回当前数据库名

USER()                          返回当前用户的名称

CHARSET(str)                    返回字符串str的字符集

COLLATION(str)                  返回字符串str的字符排列方式

LAST_INSERT_ID()                返回最后生成的auto_increment值

6.加密解密函数

PASSWORD(str)                   对字符串str进行加密

MD5(str)                        对字符串str进行加密

ENCODE(str,pswd_str)            使用字符串pswd_str来加密字符串str,加密结果是一个二进制数,必须使用BLOB类型来保持它

DECODE(crypt_str,pswd_str)      解密函数,使用字符串pswd_str来为crypt_str解密

7.其他函数


FORMAT(x,n)                     格式化函数,可以讲数字x进行格式化,将x保留到小数点后n位,这个过程需要进行四舍五入。

ASCII(s)                        返回字符串s的第一个字符的ASSCII码

BIN(x)                          返回x的二进制编码

HEX(x)                          返回x的十六进制编码

OCT(x)                          返回x的八进制编码

CONV(x,f1,f2)                   将x从f1进制数变成f2进制数

INET_ATON(IP)                   将IP地址转换为数字表示,IP值需要加上引号

INET_NTOA(n)                    可以将数字n转换成IP的形式

GET_LOCT(name,time)             加锁函数,定义一个名称为name、持续时间长度为time秒的锁,如果锁定成功,返回1,如果尝试超时,返回0,如果遇到错误,返回NULL.

RELEASE_LOCK(name)              解除名称为name的锁,如果解锁成功,返回1,如果尝试超时,返回0,如果解锁失败,返回NULL。

IS_FREE_LOCK(name)              判断是否使用名为name的锁,如果使用,返回0,否则返回1.

CONVERT(s USING cs)             将字符串s的字符集变成cs

CAST(x AS type),CONVERT(x,type) 这两个函数将x变成type类型,这两个函数只对BINARY,CHAR,DATE,DATETIME,TIME,SIGNED  INTEGER,UNSIGNED INTEGER这些类型起作用,但这两种方法只是改变了输出值得数据类型,并没有改变表中字段的类型。

MySQL数据库内置函数的更多相关文章

  1. Mysql数据库内置功能之函数

    一 函数 MySQL中提供了许多内置函数,例如: 一.数学函数 ROUND(x,y) 返回参数x的四舍五入的有y位小数的值 RAND() 返回0到1内的随机值,可以通过提供一个参数(种子)使RAND( ...

  2. Oracle数据库内置函数

    --ORACLE内置函数:单行函数,集合函数--1.绝对值,取余,判断数据正负函数,SELECT ABS(100),ABS(-100),ABS('100') FROM DUAL;SELECT MOD( ...

  3. MySQL数据库内置加密函数总结

    首先,我认识的加密函数有以下几个: password(plainText):旧版(OLD_PASSWORD())加密后长度16位,新版41位select length(password("1 ...

  4. mysql学习笔记--数据库内置函数

    一.数字类 1. 生成随机数:rand() a. 随机抽取2位 select * from stuinfo order by rand() limit 2 2. 四舍五入:round(数字) 3. 向 ...

  5. MYSQL常用内置函数详解说明

    函数中可以将字段名当作变量来用,变量的值就是该列对应的所有值:在整理98在线字典数据时(http://zidian.98zw.com/),有这要一个需求,想从多音字duoyinzi字段值提取第一个拼音 ...

  6. MySql的内置函数

    MySQL的内置函数不但可以在SELECT查询语句中应用,同样也可以在INSERT.UPDATE和DELECT等语句中应用.例如,在INSERT添加语句中,应用日期时间函数获取系统的当前时间,并且将其 ...

  7. PHP批量过滤MYSQL数据库内站外链接和图片

    因发现站内很多引用站外文章的链接失效,产生大量的死链接,对于搜索引擎来说是极不友好的,很不利于网站优化,所以站内添加了站外链接过滤功能,对于新加的文章,在添加入库时就自动增加rel="nof ...

  8. SQL server数据库内置账户SA登录设置

    SQL server数据库内置账户SA登录不了   设置SQL Server数据库给sa设置密码的时候  提示18456 解决步骤:   第二步:右击sa,选择属性: 第三步:点击状态选项卡:勾选授予 ...

  9. python之数据库内置方法以及pymysql的使用

    一.mysql内置方法 1)视图的概念和用法 .什么是视图 视图就是通过查询得到一张虚拟表,然后保存下来,下次用的直接使用即可 .为什么要用视图 如果要频繁使用一张虚拟表,可以不用重复查询 .如何用视 ...

随机推荐

  1. Map,HashMap,TreeMap

    一.HashMap,TreeMap差别 1.两种常规Map性能 HashMap:适用于在Map中插入.删除和定位元素. Treemap:适用于按自然顺序或自定义顺序遍历键(key). 2.总结 Has ...

  2. Mysql锁机制--并发事务带来的更新丢失问题

    Mysql 系列文章主页 =============== 刚开始学习 Mysql 锁的时候,觉得 Mysql 使用的是行锁,再加上其默认的可重复读的隔离级别,那就应该能够自动解决并发事务更新的问题.可 ...

  3. EF Core 2.0使用MsSql/Mysql实现DB First和Code First

    参考地址 EF官网 ASP.NET Core MVC 和 EF Core - 教程系列 环境 Visual Studio 2017 最新版本的.NET Core 2.0 SDK 最新版本的 Windo ...

  4. 嫌我的键盘的backspace太小,就尝试了一下改键工具--keyTweak

    KeyTweak是一个很简单的键盘remap小工具,主要功能就是可以让我们选择某个按键并重新赋予该按键一个新的功能.如果哪天你的键盘某个重要的键坏掉了,可以通过这个免费的软件来重新定义该按键的功能.譬 ...

  5. Go 语言接口

    Go 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口. 实例 /* 定义接口 */ type interface_name in ...

  6. PHP 5 Calendar 函数

    PHP Calendar 简介 日历扩展包含了简化不同日历格式间的转换的函数. 它是基于 Julian Day Count(儒略日计数),是从公元前 4713 年 1 月 1 日开始计算的. 注释:如 ...

  7. Dockerfile的指令

    指令的一般格式为 INSTRUCTION arguments,指令包括 FROM.MAINTAINER.RUN 等. FROM 格式为 FROM <image>或FROM <imag ...

  8. Ubuntu 16.04 + ROS Kinetic 机器人操作系统学习镜像分享与使用安装说明

    Ubuntu 16.04 + ROS Kinetic 镜像分享与使用安装说明 内容概要:1 网盘文件介绍  2 镜像制作  3 系统使用与安装 ---- 祝ROS爱好者和开发者新年快乐:-) ---- ...

  9. JBOSS EAP实战(1)

    JBOSS的诞生 1998年,在硅谷SUN公司的SAP实验室,一个年轻人正坐在电脑前面思考,然后写着什么东西.不,他没有在写程序,他在写辞呈.他正在做出人生的一个重大决定:他要辞掉在SUN的这份工作, ...

  10. Android Multimedia框架总结(十五)Camera框架之Camera2补充

    转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52751055 前言:监于5.0之 ...