目录
- 1、数学函数
- 2、字符串函数
- 3、日期和时间函数
- 4、条件判断函数
- 5、系统信息函数
- 6、加密函数
- 7、其他函数
- 总结
MySQL函数是MySQL数据库提供的内置函数。
这些内置函数可以帮助用户更加方便地处理表中的数据。
MySQL的内置函数可以对表中数据进行相应的处理,以便得到用户希望得到的数据。
有了这些内置函数可以使MySQL数据库的功能更加强大。
1、数学函数
数学函数是MySQL中常用的一类函数。其主要用于处理数字,包括整型和浮点数等等。
1.1ABS(X)函数
返回X的绝对值。
SELECT ABS(8); — 输出结果:8
SELECT ABS(-8); — 输出结果:8
1.2FLOOR(X)函数
返回不大于X的最大整数。
SELECT FLOOR(1.3); — 输出结果:1
SELECT FLOOR(1.8); — 输出结果:1
1.3CEIL(X)、CEILING(X)函数
返回不小于X的最小整数。
SELECT CEIL(1.3); — 输出结果:2
SELECT CEILING(1.8); — 输出结果:2
1.4TRUNCATE(X,D)函数
返回数值X保留到小数点后D位的值,截断时不进行四舍五入。
SELECT TRUNCATE(1.2328,3); — 输出结果:1.232
1.5ROUND(X)函数
返回离X最近的整数,截断时要进行四舍五入。
SELECT ROUND(1.3); — 输出结果:1
SELECT ROUND(1.8); — 输出结果:2
1.6ROUND(X,D)函数
保留X小数点后D位的值,截断时要进行四舍五入。
SELECT ROUND(1.2323,3); — 输出结果:1.232
SELECT ROUND(1.2328,3); — 输出结果:1.233
1.7 RAND()函数
返回0~1的随机数。
SELECT RAND(); — 输出结果:0.6198285246452583
1.8SIGN(X)函数
返回X的符号(负数,零或正)对应-1,0或1。
SELECT SIGN(-8); — 输出结果:-1
SELECT SIGN(0); — 输出结果:0
SELECT SIGN(8); — 输出结果:1
1.9MOD(N,M)函数
返回N除以M以后的余数。
SELECT MOD(8,2); — 输出结果:0
SELECT MOD(9,2); — 输出结果:1
2、字符串函数
字符串函数是MySQL中最常用的一类函数。字符串函数主要用于处理表中的字符串。
2.1 CHAR_LENGTH(str)函数
计算字符串字符个数。
SELECT CHAR_LENGTH(\’pan_junbiao的博客\’); — 输出结果:14
SELECT CHAR_LENGTH(\’欢迎访问pan_junbiao的博客\’); — 输出结果:18
2.2LENGTH(str)函数
返回值为字符串str的长度,单位为字节。
SELECT LENGTH(\’pan_junbiao\’); — 输出结果:11
SELECT LENGTH(\’阿标\’); — 输出结果:6
SELECT LENGTH(\’pan_junbiao的博客\’); — 输出结果:20
2.3CONCAT(s1,s2,…)函数
返回连接参数产生的字符串,一个或多个待拼接的内容,任意一个为NULL则返回值为NULL。
SELECT CONCAT(\’现在的时间:\’,NOW()); — 输出结果:现在的时间:2019-01-17 11:27:58
2.4CONCAT_WS(x,s1,s2,…)函数
返回多个字符串拼接之后的字符串,每个字符串之间有一个x。
SELECT CONCAT_WS(\’;\’,\’pan_junbiao的博客\’,\’KevinPan\’,\’pan_junbiao\’); — 输出结果:pan_junbiao的博客;KevinPan;pan_junbiao
2.5INSERT(s1,x,len,s2)函数
返回字符串s1,其子字符串起始于位置x,被字符串s2取代len个字符。
SELECT INSERT(\’您好,欢迎访问阿标的博客\’,8,2,\’pan_junbiao\’); — 输出结果:您好,欢迎访问pan_junbiao的博客
2.6LEFT(s,n)、RIGHT(s,n)函数
前者返回字符串s从最左边开始的n个字符,后者返回字符串s从最右边开始的n个字符。
SELECT LEFT(\’您好,欢迎访问pan_junbiao的博客\’,7); — 输出结果:您好,欢迎访问
SELECT RIGHT(\’您好,欢迎访问pan_junbiao的博客\’,14); — 输出结果:pan_junbiao的博客
2.7REPLACE(s,s1,s2)函数
返回一个字符串,用字符串s2替代字符串s中所有的字符串s1。
SELECT REPLACE(\’您好,欢迎访问阿标的博客\’,\’阿标\’,\’pan_junbiao\’); — 输出结果:您好,欢迎访问pan_junbiao的博客
2.8SUBSTRING(s,n,len)、MID(s,n,len)函数
两个函数作用相同,从字符串s中返回一个第n个字符开始、长度为len的字符串。
SELECT SUBSTRING(\’您好,欢迎访问pan_junbiao的博客\’,8,14); — 输出结果:pan_junbiao的博客
SELECT MID(\’您好,欢迎访问pan_junbiao的博客\’,8,14); — 输出结果:pan_junbiao的博客
2.9LOCATE(str1,str)、POSITION(str1 IN str)、INSTR(str,str1)函数
三个函数作用相同,返回子字符串str1在字符串str中的开始位置(从第几个字符开始)。
SELECT LOCATE(\’pan_junbiao\’,\’您好,欢迎访问pan_junbiao的博客\’); — 输出结果:8
SELECT POSITION(\’pan_junbiao\’ IN \’您好,欢迎访问pan_junbiao的博客\’); — 输出结果:8
SELECT INSTR(\’您好,欢迎访问pan_junbiao的博客\’,\’pan_junbiao\’); — 输出结果:8
2.10FIELD(s,s1,s2,…)函数
返回第一个与字符串s匹配的字符串的位置。
SELECT FIELD(\’pan_junbiao\’,\’pan_junbiao的博客\’,\’KevinPan\’,\’阿标\’,\’pan_junbiao\’); — 输出结果:4
3、日期和时间函数
日期和时间函数是MySQL中另一最常用的函数。
其主要用于对表中的日期和时间数据的处理。
参数说明:
type格式:
- SECOND秒 SECONDS
- MINUTE分钟 MINUTES
- HOUR时间 HOURS
- DAY天 DAYS
- MONTH月 MONTHS
- YEAR年 YEARS
- MINUTE_SECOND分钟和秒 "MINUTES:SECONDS"
- HOUR_MINUTE小时和分钟 "HOURS:MINUTES"
- DAY_HOUR天和小时 "DAYS HOURS"
- YEAR_MONTH年和月 "YEARS-MONTHS"
- HOUR_SECOND小时, 分钟, "HOURS:MINUTES:SECONDS"
- DAY_MINUTE天, 小时, 分钟 "DAYS HOURS:MINUTES"
- DAY_SECOND天, 小时, 分钟, 秒 "DAYS HOURS:MINUTES:SECONDS"
3.1CURDATE()、CURRENT_DATE()函数
返回当前日期,格式:yyyy-MM-dd。
SELECT CURDATE(); — 输出结果:2019-01-17
SELECT CURRENT_DATE(); — 输出结果:2019-01-17
3.2CURTIME()、CURRENT_TIME()函数
返回当前时间,格式:HH:mm:ss。
SELECT CURTIME(); — 输出结果:16:18:28
SELECT CURRENT_TIME(); — 输出结果:16:18:28
3.3NOW()、CURRENT_TIMESTAMP()、LOCALTIME()、SYSDATE()、LOCALTIMESTAMP()函数
返回当前日期和时间,格式:yyyy-MM-dd HH:mm:ss。
SELECT NOW(); — 输出结果:2019-01-17 16:28:58
SELECT CURRENT_TIMESTAMP(); — 输出结果:2019-01-17 16:28:58
SELECT LOCALTIME(); — 输出结果:2019-01-17 16:28:58
SELECT SYSDATE(); — 输出结果:2019-01-17 16:28:58
SELECT LOCALTIMESTAMP(); — 输出结果:2019-01-17 16:28:58
3.4DATEDIFF(d1,d2)函数
计算日期d1与d2之间相隔的天数。
SELECT DATEDIFF(\’2019-1-17\’,\’2019-1-10\’); — 输出结果:7
3.5ADDDATE(d,n)函数
计算起始日期d加上n天的日期。
SELECT ADDDATE(\’2019-1-17\’,3); — 输出结果:2019-01-20
3.6ADDDATE(d,INTERVAL expr type)函数
计算起始日期d加上一个时间段后的日期。
示例:将日期2019-1-17加上一年两个月后的日期。
SELECT ADDDATE(\’2019-1-17\’,INTERVAL \’1 2\’ YEAR_MONTH); — 输出结果:2020-03-17
3.7DATE_FORMAT(d,f)函数
按照表达式 f 的要求显示日期d。
SELECT DATE_FORMAT(NOW(),\’%Y年%m月%d日 %H时%i分%s秒\’); — 输出结果:2019年01月17日 19时18分08秒
4、条件判断函数
条件函数用来在SQL语句中进行条件判断。根据不同的条件,执行不同的SQL语句。MySQL支持的条件判断函数及作用。
4.1 IF()函数
示例:使用IF语句用来进行条件判断。
SELECT IF(TRUE,\’A\’,\’B\’); — 输出结果:A
SELECT IF(FALSE,\’A\’,\’B\’); — 输出结果:B
4.2IFNULL()函数
SELECT IFNULL(NULL,\’B\’); — 输出结果:B
SELECT IFNULL(\’pan_junbiao的博客\’,\’B\’); — 输出结果:pan_junbiao的博客
4.2CASE语句
示例:使用CASE语句用来进行条件判断。
— 创建存储过程
CREATE PROCEDURE example_case(IN x INT)
BEGIN
CASE x
WHEN 1 THEN SELECT 1;
WHEN 2 THEN SELECT 2;
ELSE SELECT 3;
END CASE;
END;
— 调用存储过程
CALL example_case(5); — 输出结果:3
5、系统信息函数
系统信息函数用来查询MySQL数据库的系统信息。
5.1 获取MySQL版本号、连接数和数据库名
SELECT VERSION(); — 输出结果:8.0.13
SELECT CONNECTION_ID(); — 输出结果:160
SELECT DATABASE(); — 输出结果:db_admin
5.2 获取当前用户
SELECT CURRENT_USER(); — 输出结果:root@localhost
6、加密函数
加密函数是MySQL中用来对数据进行加密的函数。因为数据库中有些很敏感的信息不希望被其他人看到,所以就可以通过加密的方式来使这些数据变成看似乱码的数据。
7、其他函数
MySQL中除了上述内置函数以外,还包含很多函数。
例如,数字格式化函数FORMAT(x,n),IP地址与数字的转换函数INET_ATON(ip),还有加锁函数GET_LOCT(name,time)、解锁函数RELEASE_LOCK(name)等等。
7.1FORMAT(X,D)函数
将数字X格式化,将X保留到小数点后D位,截断时要进行四舍五入。
SELECT FORMAT(1.2323,3); — 输出结果:1.232
SELECT FORMAT(1.2328,3); — 输出结果:1.233
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持悠久资源网。