> 文章列表 > 数据库基础篇 《7.单行函数》

数据库基础篇 《7.单行函数》

数据库基础篇 《7.单行函数》

目录

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 基本函数

举例:  

SELECT
ABS(- 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 三角函数

SELECT
SIN(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 获取日期、时间

 

SELECT
CURDATE(),CURTIME(),NOW(),SYSDATE()+ 0 , UTC_DATE (), UTC_DATE ()+ 0 , UTC_TIME (), UTC_TIME ()+ 0
FROM 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' , INTERVAL
1 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 col3
FROM DUAL ;

2组:

举例:  

SELECT
ADDTIME(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 的开发和运维过程中也是不容忽视的。