目录
1. 函数的理解
1.1 什么是函数
1.2 不同DBMS函数的差异
编辑1.3 MySQL的内置函数及分类
编辑
2. 数值函数
2.1 基本函数
编辑
2.2 角度与弧度互换函数
2.3 三角函数
编辑
2.4 指数与对数
编辑
2.5 进制间的转换
编辑3. 字符串函数
编辑编辑
4. 日期和时间函数
4.1 获取日期、时间
编辑4.2 日期与时间戳的转换
4.3 获取月份、星期、星期数、天数等函数
4.4 日期的操作函数
编辑
4.5 时间和秒钟转换的函数
4.6 计算日期和时间的函数
4.7 日期的格式化与解析
编辑编辑编辑
5. 流程控制函数
6. 加密与解密函数
7. MySQL信息函数
8. 其他函数
1. 函数的理解
1.1 什么是函数
1.2 不同DBMS函数的差异
1.3 MySQL的内置函数及分类
2. 数值函数
2.1 基本函数
举例:
SELECTABS(- 123 ),ABS( 32 ),SIGN(- 23 ),SIGN( 43 ),PI(),CEIL( 32.32 ),CEILING(- 43.23 ),FLOOR( 32.32 ),FLOOR(- 43.23 ), MOD ( 12 , 5 )FROM DUAL ;
SELECT RAND(),RAND(),RAND(10),RAND(10),RAND(-1),RAND(-1)
FROM DUAL ;
SELECT
ROUND( 12.33 ),ROUND( 12.343 , 2 ),ROUND( 12.324 ,- 1 ), TRUNCATE ( 12.66 , 1 ), TRUNCATE ( 12.66 ,- 1 )FROM DUAL ;
2.2 角度与弧度互换函数
SELECT RADIANS( 30 ),RADIANS( 60 ),RADIANS( 90 ),DEGREES( 2 *PI()),DEGREES(RADIANS( 90 ))FROM DUAL ;
2.3 三角函数
SELECTSIN(RADIANS( 30 )),DEGREES(ASIN( 1 )),TAN(RADIANS( 45 )),DEGREES(ATAN( 1 )),DEGREES(ATAN2( 1 , 1 ))FROM DUAL ;
2.4 指数与对数
2.5 进制间的转换
3. 字符串函数
4. 日期和时间函数
4.1 获取日期、时间
SELECTCURDATE(),CURTIME(),NOW(),SYSDATE()+ 0 , UTC_DATE (), UTC_DATE ()+ 0 , UTC_TIME (), UTC_TIME ()+ 0FROM DUAL ;
4.2 日期与时间戳的转换
4.3 获取月份、星期、星期数、天数等函数
举例:
SELECT YEAR (CURDATE()),MONTH(CURDATE()),DAY(CURDATE()),HOUR(CURTIME()),MINUTE(NOW()),SECOND(SYSDATE())FROM DUAL ;
SELECT MONTHNAME( '2021-10-26' ),DAYNAME( '2021-10-26' ),WEEKDAY( '2021-10-26' ),QUARTER(CURDATE()),WEEK(CURDATE()),DAYOFYEAR(NOW()),DAYOFMONTH(NOW()),DAYOFWEEK(NOW())FROM DUAL ;
4.4 日期的操作函数
SELECT EXTRACT(MINUTE FROM NOW()),EXTRACT( WEEK FROM NOW()),EXTRACT( QUARTER FROM NOW()),EXTRACT( MINUTE_SECOND FROM NOW())FROM DUAL ;
4.5 时间和秒钟转换的函数
4.6 计算日期和时间的函数
第
1
组:

SELECT DATE_ADD(NOW(), INTERVAL 1 DAY) AS col1,DATE_ADD( '2021-10-21 23:32:12' , INTERVAL1 SECOND) AS col2,ADDDATE( '2021-10-21 23:32:12' , INTERVAL 1 SECOND) AS col3,DATE_ADD( '2021-10-21 23:32:12' , INTERVAL '1_1' MINUTE_SECOND ) AS col4,DATE_ADD(NOW(), INTERVAL - 1 YEAR ) AS col5, # 可以是负数DATE_ADD(NOW(), INTERVAL '1_1' YEAR_MONTH ) AS col6 # 需要单引号FROM DUAL ;
SELECT DATE_SUB( '2021-01-21' , INTERVAL 31 DAY) AS col1,SUBDATE( '2021-01-21' , INTERVAL 31 DAY) AS col2,DATE_SUB( '2021-01-21 02:01:01' , INTERVAL '1 1' DAY_HOUR ) AS col3FROM DUAL ;
第2组:
举例:
SELECTADDTIME(NOW(), 20 ),SUBTIME(NOW(), 30 ),SUBTIME(NOW(), '1:1:3' ),DATEDIFF(NOW(), '2021-10-01' ),TIMEDIFF(NOW(), '2021-10-25 22:10:10' ),FROM_DAYS( 366 ),TO_DAYS( '0000-12-25' ),LAST_DAY(NOW()),MAKEDATE( YEAR (NOW()), 12 ),MAKETIME( 10 , 21 , 23 ),PERIOD_ADD( 20200101010101 ,10 )FROM DUAL ;
举例:查询 7 天内的新增用户数有多少?
SELECT COUNT(*) as num FROM new_user WHERE TO_DAYS(NOW())-TO_DAYS(regist_time)<=7
4.7 日期的格式化与解析
5. 流程控制函数
流程处理函数可以根据不同的条件,执行不同的处理流程,可以在
SQL
语句中实现不同的条件选择。MySQL中的流程处理函数主要包括
IF()
、
IFNULL()
和
CASE()
函数。
6. 加密与解密函数
加密与解密函数主要用于对数据库中的数据进行加密和解密处理,以防止数据被他人窃取。这些函数在保证数据库安全时非常有用。

7. MySQL信息函数
MySQL
中内置了一些可以查询
MySQL
信息的函数,这些函数主要用于帮助数据库开发或运维人员更好地对数据库进行维护工作。
8. 其他函数
MySQL
中有些函数无法对其进行具体的分类,但是这些函数在
MySQL
的开发和运维过程中也是不容忽视的。