MySQL常用函数汇总

目录

一、常用函数(核心版)

1、MySQL 字符串函数

2、MySQL 日期和时间函数

3、MySQL 聚合函数

4、MySQL 数值型函数

5、MySQL 流程控制函数

附录:时间格式表

二、函数清单(完整版)

1、字符串函数

2、数学函数

3、日期函数

4、Mysql高级函数


一、常用函数(核心版)

1、MySQL 字符串函数

函数名称

作 用

示例

LENGTH

计算字符串长度函数,返回字符串的字节长度

使用 LENGTH 函数计算字符串长度

SELECT LENGTH('name'),LENGTH('数据库');

CONCAT

合并字符串函数,返回结果为连接参数产生的字符串,参数可以使一个或多个

SELECT CONCAT('MySQL','5.7')

INSERT

替换字符串函数

SELECT INSERT('Football',2,4,'Play')

从第 2 个字符开始,长度为 4 的字符串,

替换为 Play,结果为“FPlayall”

LOWER

将字符串中的字母转换为小写

SELECT LOWER('BLUE')

UPPER

将字符串中的字母转换为大写

SELECT UPPER('green')

LEFT

左侧截取字符串,返回字符串左边的若干个字符

SELECT LEFT('MySQL',2);   返回My

RIGHT

右侧字截取符串,返回字符串右边的若干个字符

SELECT RIGHT('MySQL',3);  返回SQL

TRIM

删除字符串左右两侧的空格

SELECT TRIM('   mobile   ')

REPLACE

字符串替换函数,返回替换后的新字符串

SELECT REPLACE('aaa.mysql.com','a','w');

将字符串的“a”字符替换为“w”字符

SUBSTRING

截取字符串,返回从指定位置开始的指定长度的字符换

SELECT SUBSTRING('computer',3,4)

返回从第 3 个位置开始长度为 4 的子字符串

REVERSE

字符串反转(逆序)函数,返回顺序相反的字符串

SELECT REVERSE('hello');

2、MySQL 日期和时间函数

函数名称

作 用

示例

CURDATE 和 CURRENT_DATE

返回当前系统的日期(年:月:日)

current [ˈkʌrənt]  现在的

SELECT CURDATE();

SELECT CURRENT_DATE();

CURTIME 和 CURRENT_TIME

返回当前系统的时间  (时:分:秒)

SELECT CURTIME();

SELECT CURRENT_TIME();

NOW 和  SYSDATE

返回当前系统的日期和时间值  (年:月:日 时:分:秒)

SELECT NOW();

YEAR

获取年份

SELECT YEAR(NOW())

MONTH

获取月份

SELECT MONTH('2022-9-19');

DAY

获取日

SELECT DAY(NOW())

WEEK

获取指定日期是一年中的第几周

SELECT WEEK(NOW())

DAYNAME

获取指定曰期对应的星期几的英文名称 (Monday)

SELECT DAYNAME(NOW())

MONTHNAME

获取指定日期中的月份英文名称  (September)

SELECT MONTHNAME(NOW())

DAYOFYEAR

获取指定曰期是一年中的第几天,返回值范围是1~366

DAYOFMONTH

获取指定日期是一个月中是第几天,返回值范围是1~31

DAYOFWEEK

获取指定日期对应的一周的第几天

1 表示周日(周日是第一天)

SELECT DAYOFWEEK(NOW())

TIME_TO_SEC

将时间转换为秒数   (3605)

SELECT TIME_TO_SEC('1:00:5');

SEC_TO_TIME

将秒数转换为时间,与TIME_TO_SEC 互为反函数

ADDDATEDATE_ADD

都是向日期添加指定的时间间隔 

interval  [ˈɪntəvl]  间隔

SELECT ADDDATE('2018-11-1',INTERVAL 1 DAY)

SELECT DATE_ADD('2018-11-1',INTERVAL 1 MONTH)

SUBDATEDATE_SUB

都是向日期减去指定的时间间隔

SELECT DATE_SUB('2018-01-02',INTERVAL 1 DAY)

ADDTIME

时间加法运算,在原始时间上添加指定的时间

SELECT ADDTIME('10:30:00','5:10:05');

SUBTIME

时间减法运算,在原始时间上减去指定的时间

DATEDIFF

获取两个日期之间间隔天数,参数1-参数2

SELECT DATEDIFF('2017-11-30','2017-11-29')

DATE_FORMAT

格式化指定的日期,根据参数返回指定格式的值

SELECT DATE_FORMAT('2022-11-15 21:45:00','%Y:%m:%d')

SELECT DATE_FORMAT(NOW(),'%Y-%m-%d')

SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s')

WEEKDAY

获取指定日期在一周内的对应的工作日索引

0 表示周一,1 表示周二

SELECT WEEKDAY(NOW());

UNIX_TIMESTAMP

获取UNIX时间戳函数,它会将参数值以'1970-01-01 00:00:00'GMT后的秒数的形式返回。(一个整数)

SELECT UNIX_TIMESTAMP()

3、MySQL 聚合函数

函数名称

作用

示例

MAX

查询指定列的最大值

SELECT MAX(score) FROM table;

MIN

查询指定列的最小值

SELECT MIN(score) FROM table;

COUNT

统计查询结果的行数

COUNT(*) 计算表中总的行数,无论某列有数值或者为空值

COUNT(字段名)计算指定列下总的行数,计算时将忽略空值的行

SELECT COUNT(score) FROM table;

SUM

求和,返回指定列的总和

SELECT SUM(score) FROM table;

AVG

求平均值,返回指定列数据的平均值

SELECT AVG(score) FROM table;


 

4、MySQL 数值型函数

函数名称

作 用

示例

ABS

求绝对值

求 5、-2.4、-24 和 0 的绝对值

SELECT ABS(5),ABS(-2.4),ABS(-24),ABS(0);

SQRT

求二次方根

SELECT SQRT(25),SQRT(120),SQRT(-9);

MOD

求余数

CEIL 和 CEILING

都是返回不小于参数的最小整数,即向上取整

FLOOR

向下取整,返回值转化为一个BIGINT

RAND

生成一个0~1之间的随机数,传入整数参数是,用来产生重复序列

ROUND

对所传参数进行四舍五入

SIGN

返回参数的符号

POW 和 POWER

所传参数的次方的结果值

SIN

求正弦值

SELECT SIN(1),SIN(0.5*PI());

ASIN

求反正弦值,与函数 SIN 互为反函数

COS

求余弦值

ACOS

求反余弦值,与函数 COS 互为反函数

TAN

求正切值

ATAN

求反正切值,与函数 TAN 互为反函数

COT

求余切值

5、MySQL 流程控制函数

函数名称

作用

示例

IF

判断  (流程控制)

     

IFNULL

判断是否为空   IFNULL(v1,v2); 

如果 v1 不为 NULL,则 IFNULL 函数返回 v1; 否则返回 v2 的结果。

CASE

搜索语句

附录:时间格式表

说明符

说明

%Y

4 位数形式表示年份

%m

月份,数字形式(00~12)

%d

该月日期,数字形式(00~31)

%H

以 2 位数表示 24 小时(00~23)

%i

分钟,数字形式(00~59)

%S, %s

以 2 位数形式表示秒(00~59)

%W

星期标识(周日、周一、周二…周六)   Monday

%a

工作日的缩写名称(Sun~Sat)

%b

月份的缩写名称(Jan…Dec)

%c

月份,数字形式(0~12)

%D

带有英语后缀的该月日期(0th, 2st, 3nd,…)

%e

该月日期,数字形式((0~31)

%f

微秒(000000 …999999)

%h, %I

以 2 位数表示 12 小时(01~12)

%j

—年中的天数(001~366)

%k

以 24 小时(0~23)表示

%l

以12小时(1~12)表示

%M

月份名称(January~December)

%p

上午(AM) 或下午(PM)

%r

时间,12小时制(小时 (hh): 分钟 (mm) : 秒数 (ss) 后加 AM 或 PM)

%T

时间,24 小时制(小时 (hh): 分钟 (mm): 秒数 (ss))

%U

周(00~53),其中周日为每周的第一天

%u

周(00~53),其中周一为每周的第一天

%V

周(01~53),其中周日为每周的第一天,和%X同时使用

%v

周(01~53),其中周一为每周的第一天,和%x同时使用

%w

—周中的每日(0= 周日…6= 周六)

%X

该周的年份,其中周日为每周的第一天,数字形式,4 位数,和%V同时使用

%x

该周的年份,其中周一为每周的第一天,数字形式,4位数,和%v同时使用

%y

2 位数形式表示年份

%%

%一个文字字符

二、SQL函数清单(完整版)

1字符串函数

函数

描述

示例

CHAR_LENGTH(s)

返回字符串s的字符数

select char_length(sname) from student where sid=1;

CHARACTER(s)

返回字符串s的字符数

select character_length(sname) from student where sid=1;

CONCAT(s1,s2…sn)

字符串 s1,s2 等多个字符串合并为一个字符串

select concat(‘i’,‘love’,‘you’);

FORMAT(x,n)

函数可以将数字 x 进行格式化 “#,###.##”, 将 x 保留到小数点后 n 位,最后一位四舍五入。

SELECT FORMAT(250500.5634, 2); – 输出 250,500.56

INSERT(s1,x,len,s2)

字符串 s2 替换 s1 的 x 位置开始长度为 len 的字符串

SELECT INSERT(“google.com”, 1, 6, “runnob”); – 输出:runoob.com

LOCATE(s1,s)

从字符串 s 中获取 s1 的开始位置

SELECT LOCATE(‘st’,‘myteststring’); – 5

LCASE(s)

将字符串 s 的所有字母变成小写字母

SELECT LCASE(‘RUNOOB’) – runoob

LOWER(s)

将字符串 s 的所有字母变成小写字母

SELECT LOWER(‘RUNOOB’) – runoob

LTRIM(s)

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

SELECT LTRIM(" RUNOOB") AS LeftTrimmedString;-- RUNOOB

MID(s,n,len)

从字符串 s 的 n 位置截取长度为 len 的子字符串,同 SUBSTRING(s,n,len)

SELECT MID(“RUNOOB”, 2, 3) AS ExtractString; – UNO

LEFT(s,n)

返回字符串 s 的前 n 个字符

SELECT LEFT(‘runoob’,2) – ru

RIGHT(s,n)

返回字符串 s 的后 n 个字符

SELECT RIGHT(‘runoob’,2) – ob

REPEAT(s,n)

将字符串 s 重复 n 次

SELECT REPEAT(‘runoob’,3) – runoobrunoobrunoob

REPLACE(s,s1,s2)

将字符串 s2 替代字符串 s 中的字符串 s1

SELECT REPLACE(‘abc’,‘a’,‘x’) --xbc

REVERSE(s)

将字符串s的顺序反过来

SELECT REVERSE(‘abc’) – cba

RPAD(s1,len,s2)

在字符串 s1 的结尾处添加字符串 s2,使字符串的长度达到 len

SELECT RPAD(‘abc’,5,‘xx’) – abcxx

STRCMP(s1,s2)

比较字符串 s1 和 s2,如果 s1 与 s2 相等返回 0 ,如果 s1>s2 返回 1,如果 s1<s2 返回 -1

SELECT STRCMP(“runoob”, “runoob”); – 0

SUBSTR(s, start, length)

从字符串 s 的 start 位置截取长度为 length 的子字符串

SELECT SUBSTR(“RUNOOB”, 2, 3) ; – UNO

SUBSTRING(s, start, length)

从字符串 s 的 start 位置截取长度为 length 的子字符串

SELECT SUBSTRING(“RUNOOB”, 2, 3) ; – UNO

TRIM(s)

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

SELECT TRIM(’ RUNOOB ') AS TrimmedString;

UCASE(s)

将字符串转换为大写

SELECT UCASE(“runoob”); – RUNOOB

UPPER(s)

将字符串转换为大写

SELECT UPPER(“runoob”); – RUNOOB

2数学函数

函数名

描述

示例

ABS(x)

返回 x 的绝对值

SELECT ABS(-1) – 返回1

ACOS(x)

求 x 的反余弦值(参数是弧度)

SELECT ACOS(0.25);

ASIN(x)

求反正弦值(参数是弧度)

SELECT ASIN(0.25);

ATAN(x)

求反正切值(参数是弧度)

SELECT ATAN(2.5);

ATAN2(n, m)

求反正切值(参数是弧度)

SELECT ATAN2(-0.8, 2);

AVG(expression)

返回一个表达式的平均值,expression 是一个字段

SELECT AVG(Price) AS AveragePrice FROM Products;

COS(x)

求余弦值(参数是弧度)

SELECT COS(2);

COT(x)

求余切值(参数是弧度)

SELECT COT(6);

COUNT(expression)

返回查询的记录总数,expression 参数是一个字段或者 * 号

SELECT COUNT(ProductID) AS NumberOfProducts FROM Products;

DEGREES(x)

将弧度转换为角度

SELECT DEGREES(3.1415926535898) – 180

EXP(x)

返回 e 的 x 次方

SELECT EXP(3) – 20.085536923188

FLOOR(x)

返回小于或等于 x 的最大整数

SELECT FLOOR(1.5) – 返回1

GREATEST(expr1, expr2, expr3, …)

返回列表中的最大值

SELECT GREATEST(3, 12, 34, 8, 25); – 34

LEAST(expr1, expr2, expr3, …)

返回列表中的最小值

SELECT LEAST(3, 12, 34, 8, 25); – 3

LOG(x) 或 LOG(base, x)

返回自然对数(以 e 为底的对数),如果带有 base 参数,则 base 为指定带底数。

SELECT LOG(2, 4); – 2

LOG10(x)

返回以 10 为底的对数

SELECT LOG10(100) – 2

LOG2(x)

返回以 2 为底的对数

SELECT LOG2(6); – 2.584962500721156

MAX(expression)

返回字段 expression 中的最大值

SELECT MAX(Price) AS LargestPrice FROM Products;

MIN(expression)

返回字段 expression 中的最小值

SELECT MIN(Price) AS MinPrice FROM Products;

MOD(x,y)

返回 x 除以 y 以后的余数

SELECT MOD(5,2) – 1

PI()

返回圆周率(3.141593)

SELECT PI() --3.141593

POW(x,y)

返回 x 的 y 次方

SELECT POW(2,3) – 8

POWER(x,y)

返回 x 的 y 次方

SELECT POWER(2,3) – 8

RADIANS(x)

将角度转换为弧度

SELECT RADIANS(180) – 3.1415926535898

RAND()

返回 0 到 1 的随机数

SELECT RAND() --0.93099315644334

ROUND(x)

返回离 x 最近的整数

SELECT ROUND(1.23456) --1

SIGN(x)

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

SELECT SIGN(-10) – (-1)

SIN(x)

求正弦值(参数是弧度)

SELECT SIN(RADIANS(30)) – 0.5

SQRT(x)

返回x的平方根

SELECT SQRT(25) – 5

SUM(expression)

返回指定字段的总和

SELECT SUM(Quantity) AS TotalItemsOrdered FROM OrderDetails;

TAN(x)

求正切值(参数是弧度)

SELECT TAN(1.75); – -5.52037992250933

3日期函数

函数名

描述

示例

ADDDATE(d,n)

计算起始日期 d 加上 n 天的日期

SELECT ADDDATE(“2017-06-15”, INTERVAL 10 DAY);2017-06-25

ADDTIME(t,n)

时间 t 加上 n 秒的时间

SELECT ADDTIME(‘2011-11-11 11:11:11’, 5) --2011-11-11 11:11:16 (秒)

CURDATE()

返回当前日期

SELECT CURDATE(); 2018-09-19

CURRENT_DATE()

返回当前日期

SELECT CURRENT_DATE();–2018-09-19

CURRENT_TIME

返回当前时间

SELECT CURRENT_TIME();–19:59:02

CURRENT_TIMESTAMP()

返回当前日期和时间

SELECT CURRENT_TIMESTAMP() – 2018-09-19 20:57:43

DATE()

从日期或日期时间表达式中提取日期值

SELECT DATE(“2017-06-15”); --2017-06-15

DATEDIFF(d1,d2)

计算日期 d1->d2 之间相隔的天数

SELECT DATEDIFF(‘2001-01-01’,‘2001-02-02’) --32

DATE_ADD(d,INTERVAL expr type)

计算起始日期 d 加上一个时间段后的日期

SELECT ADDDATE(‘2011-11-11 11:11:11’, INTERVAL 5 MINUTE)—2011-11-11 11:16:11

DATE_FORMAT(d,f)

按表达式 f的要求显示日期 d

SELECT DATE_FORMAT(‘2011-11-11 11:11:11’,’%Y-%m-%d %r’)----2011-11-11 11:11:11 AM

DATE_SUB(date,INTERVAL expr type)

函数从日期减去指定的时间间隔

SELECT OrderId,DATE_SUB(OrderDate,INTERVAL 2 DAY) AS OrderPayDate FROM Orders

DAY(d)

返回日期 d 是星期几,如 Monday,Tuesday

SELECT DAYNAME(‘2011-11-11 11:11:11’)–Friday

DAYOFMONTH(d)

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

SELECT DAYOFMONTH(‘2011-11-11 11:11:11’)–11

DAYOFWEEK(d)

日期 d 今天是星期几,1 星期日,2 星期一,以此类推

SELECT DAYOFWEEK(‘2011-11-11 11:11:11’)–6

DAYOFYEAR(d)

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

SELECT DAYOFYEAR(‘2011-11-11 11:11:11’)–315

FROM_DAYS(n)

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

SELECT FROM_DAYS(1111) --0003-01-16

HOUR(t)

返回 t 中的小时值

SELECT HOUR(‘1:2:3’)—1

LAST_DAY(d)

返回给给定日期的那一月份的最后一天

SELECT LAST_DAY(“2017-06-20”);–2017-06-30

LOCALTIME()

返回当前日期和时间

SELECT LOCALTIME()—2018-09-19 20:57:43

LOCALTIMESTAMP()

返回当前日期和时间

SELECT LOCALTIMESTAMP()----2018-09-19 20:57:43

MAKETIME(hour, minute, second)

组合时间,参数分别为小时、分钟、秒

SELECT MAKETIME(11, 35, 4);–11:35:04

MINUTE(t)

返回 t 中的分钟值

SELECT MINUTE(‘1:2:3’)–2

MONTHNAME(d)

返回日期当中的月份名称,如 November

SELECT MONTHNAME(‘2011-11-11 11:11:11’)–November

MONTH(d)

返回日期d中的月份值,1 到 12

SELECT MONTH(‘2011-11-11 11:11:11’)—11

NOW()

返回当前日期和时间

SELECT NOW()–2018-09-19 20:57:43

QUARTER(d)

返回日期d是第几季节,返回 1 到 4

SELECT QUARTER(‘2011-11-11 11:11:11’)----4

SECOND(t)

返回 t 中的秒钟值

SELECT SECOND(‘1:2:3’)—3

SEC_TO_TIME(s)

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

SELECT SEC_TO_TIME(4320)–01:12:00

STR_TO_DATE(string, format_mask)

将字符串转变为日期

SELECT STR_TO_DATE(“August 10 2017”, “%M %d %Y”);–2017-08-10

SUBDATE(d,n)

日期 d 减去 n 天后的日期

SELECT SUBDATE(‘2011-11-11 11:11:11’, 1)–2011-11-10 11:11:11 (默认是天)

SYSDATE()

返回当前日期和时间

SELECT SYSDATE()----2018-09-19 20:57:43

TIME(expression)

提取传入表达式的时间部分

SELECT TIME(“19:30:10”);–19:30:10

TIME_FORMAT(t,f)

按表达式 f 的要求显示时间 t

SELECT TIME_FORMAT(‘11:11:11’,’%r’)—11:11:11 AM

TIME_TO_SEC(t)

将时间 t 转换为秒

SELECT TIME_TO_SEC(‘1:12:00’)–4320

TIMEDIFF(time1, time2)

计算时间差值

SELECT TIMEDIFF(“13:10:11”, “13:10:10”);–00:00:01

TIMESTAMP(expression, interval)

单个参数时,函数返回日期或日期时间表达式;有2个参数时,将参数加和

SELECT TIMESTAMP(“2017-07-23”, “13:10:11”);–2017-07-23 13:10:11

TO_DAYS(d)

计算日期 d 距离 0000 年 1 月 1 日的天数

SELECT TO_DAYS(‘0001-01-01 01:01:01’)–366

WEEK(d)

计算日期 d 是本年的第几个星期,范围是 0 到 53

SELECT WEEK(‘2011-11-11 11:11:11’)–45

WEEKDAY(d)

日期 d 是星期几,0 表示星期一,1 表示星期二

SELECT WEEKDAY(“2017-06-15”);–3

WEEKOFYEAR(d)

计算日期 d 是本年的第几个星期,范围是 0 到 53

SELECT WEEKOFYEAR(‘2011-11-11 11:11:11’)–45

YEAR(d)

返回年份

SELECT YEAR(“2017-06-15”);-2017

YEARWEEK(date, mode)

返回年份及第几周(0到53),mode 中 0 表示周天,1表示周一,以此类推

SELECT YEARWEEK(“2017-06-15”);–201724

4Mysql高级函数

函数名

描述

示例

BIN(x)

返回 x 的二进制编码

SELECT BIN(15); - 1111

BINARY(s)

将字符串 s 转换为二进制字符串

SELECT BINARY “RUNOOB”;–RUNOOB

CAST(x AS type)

转换数据类型

SELECT CAST(“2017-08-29” AS DATE);-- 2017-08-29

COALESCE(expr1, expr2, …, expr_n)

返回参数中的第一个非空表达式(从左向右)

SELECT COALESCE(NULL, NULL, NULL, ‘runoob.com’, NULL, ‘google.com’);-- runoob.com

CONNECTION_ID()

返回唯一的连接 ID

SELECT CONNECTION_ID();—4292835

CONV(x,f1,f2)

返回 f1 进制数变成 f2 进制数

SELECT CONV(15, 10, 2);–1111

CONVERT(s USING cs)

函数将字符串 s 的字符集变成 cs

SELECT CHARSET(‘ABC’)–utf-8

DATABASE()

返回当前数据库名

SELECT DATABASE(); --runoob

IF(expr,v1,v2)

如果表达式 expr 成立,返回结果 v1;否则,返回结果 v2

SELECT IF(1 > 0,‘正确’,‘错误’) --正确

IFNULL(v1,v2)

如果 v1 的值不为 NULL,则返回 v1,否则返回 v2。

SELECT IFNULL(null,‘Hello Word’)–Hello Word

ISNULL(expression)

判断表达式是否为 NULL

SELECT ISNULL(NULL); --1

LAST_INSERT_ID()

返回最近生成的 AUTO_INCREMENT 值

SELECT LAST_INSERT_ID();–6

NULLIF(expr1, expr2)

比较两个字符串,如果字符串 expr1 与 expr2 相等 返回 NULL,否则返回 expr1

SELECT NULLIF(25, 25);–null

CURRENT_USER()

返回当前用户

SELECT CURRENT_USER();–guest@%

SESSION_USER()

返回当前用户

SELECT SESSION_USER();–guest@%

SYSTEM_USER()

返回当前用户

SELECT SYSTEM_USER();–guest@%

USER()

返回当前用户

SELECT USER();–guest@%

VERSION()

返回数据库的版本号

SELECT VERSION()–5.6.34

case ex when cond1 then r1 when cond2 then r2 else r end

CASE 表示函数开始,END 表示函数结束。如果 cond1 成立,则返回 r1, 如果 cond2 成立,则返回 r2,当全部不成立则返回 result,而当有一个成立之后,后面的就不执行了。

SELECT CASE WHEN 1 > 0 THEN '1 > 0 ’ WHEN 2 > 0 THEN ‘2 > 0’ ELSE '3 > 0 ’ END --1>0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bigdata_pokison

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值