运用MySQL高级语句

一:理论

1.MySQL数据库函数

MySQL数据库函数
常用的函数分类

常用的数学函数
abs(x) 返回x的绝对值
rand() 返回0到1的随机数
mod(x,y)返回x除以y以后的余数
power(x,y)返回x的y次方
round(x)返回离x最近的整数
round(x,y)保留x的y位小数四舍五入的值
sqrt(x)返回x的平方根
truncate(x,y) 返回数字x截断为y位小数的值
ceil(x)返回大于或等于x的最小整数
floor(x)返回小于等于x的最大整数
greatest(x1,x2…)返回集合中最大的值
least(x1,x2…)返回集合中最小的值

常用的聚合函数
avg()返回指定列的平均值
count()返回指定列中非NULL值的个数
min()返回指定列的最小值
max()返回指定列的最大值
sum()返回指定列的所有值之和

常用的字符串函数
length(x)返回字符串x的长度
trim()返回去除指定格式的值
concat(x,y)将提供的参数x和y拼接成一个字符串
upper(x)将字符串x的所有字母变成大写字母
lower(x)将字符串x的所有字母变成小写字母
left(x,y)返回字符串x 的前y个字符
right(x,y)返回字符串x的后y个字符
repeat(x,y)将字符串x重复y次
space(x)返回x个空格
replace(x,y,z)将字符串z替代字符串x中的y字符串
strcmp(x,y)比较x和y,返回的值可以为-1,0,1
substring(x,y,z)获取从字符串x中的第y个位置开始长度为z的字符串
reverse(x)将字符串x反转

常用的日期时间函数
curdate()返回当前时间的年月日
curtime()返回当前时间的时分秒
now()返回当前时间的日期和时间
month(x)返回日期x中的月份值
week(x)返回日期x是年度第几个星期
hour(x)返回x中的小时值
minute(x)返回x中的分钟值
second(x)返回s中的秒钟值
dayofweek(x)返回x是星期几,1是星期日,2是星期一
dayofmonth(x)计算日期x是本月的第几天
dayofyear(x)计算日期x是本年的第几天

2.存储过程

1.简介:
是一组为了完成特定功能的SQL语句集合
比传统SQL速度更快,执行效率更高
存储过程的优点
执行一次后,会将生成的二进制代码驻留缓冲区,提高执行效率
SQL语句加上控制语句的集合,灵活性高
在服务器端存储,客户端调用时,降低网络负载
可多次重复被调用,可随时修改,不影响客户端调用
可完成所有的数据库操作,也可控制数据库的信息访问权限
2.创建存储过程
使用CREATE PROCEDURE语句创建存储过程
创建存储过程的语法结构
CREATE PROCEDURE <过程名> (过程参数[…])<过程体> [过程参数[…]] 格式 [IN|OUT|INOUT] <参数名> <类型>
3.参数分为
输入参数:IN
输出参数:OUT
输入/输出参数:INOUT
4.存储过程的主体部分,被称为过程体
5.以BEGIN开始,以END结束,若只有一条SQL语句
6.以DELIMITER开始和结束

存储过程

//**案列**
mysql> delimiter $$
mysql> create procedure a()
    -> begin
    -> select * from chengji limit 3;
    -> end $$
Query OK, 0 rows affected (0.00 sec)

mysql> delimiter ;
mysql> call a();
+----+-----+----------+--------+------+
| id | age | name     | scrore | num  |
+----+-----+----------+--------+------+
|  1 |  17 | zhangsan |   60.0 | NULL |
|  2 |  18 | lisi     |   70.0 | NULL |
|  3 |  18 | wangwu   |   80.0 | NULL |
+----+-----+----------+--------+------+
3 rows in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)
mysql> delimiter $$
mysql> create procedure p(in num1 int,out num2 int,inout num3 int)
    -> begin
    -> select num1,num2,num3;
    -> set num1=10,num2=20,num3=30;
    -> select num1,num2,num3;
    -> end $
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ;
mysql> call p(@num1,@num2,@num3);
+------+------+------+
| num1 | num2 | num3 |
+------+------+------+
|    1 | NULL |    3 |
+------+------+------+
1 row in set (0.00 sec)

+------+------+------+
| num1 | num2 | num3 |
+------+------+------+
|   10 |   20 |   30 |
+------+------+------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

**in和inout参数会将全局变量的值传入存储过程中,而out参数不会将全局变量的值传入存储过程中,在全局过程使用中,参数值in、out、inout都会发生改变**


mysql> select @num1,@num2,@num3;
+-------+-------+-------+
| @num1 | @num2 | @num3 |
+-------+-------+-------+
|     1 |    20 |    30 |
+-------+-------+-------+
1 row in set (0.00 sec)
**调用完存储过程后,发现in参数不会对全局变量的值引起变化,而out和inout参数调用完存储过程后,会对全局变量的值产生变化,会将存储过程引用后的值赋值给全局变量,in参数赋值类型可以是变量还有定值,而out和inout参数赋值类型必须是变量**

**修改存储过程
1、存储过程的修改分为特征修改和内容修改
2、特征修改的方法
	ALTER PROCEDURE <过程名> [<特征>...]
3、内容修改可先删除原有存储过程,之后再创建方法
9、删除存储过程
1、删除存储过程的语法
	DROP { PROCEDURE | FUNCTION } [ IF EXISTS ] <过程名>
2、删除的过程
mysql> drop procedure a;
mysql> call a();
ERROR 1305 (42000): PROCEDURE score.a does not exist**

2. 案列加理论

1.按关键字排序

1.使用ORDER BY语句来实现排序
2.排序可针对一个或多个字段
3.ASC:升序,默认排序方式
4.DESC:降序
5.DER BY的语法结构

mysql> create database xinsheng;
mysql> use xinsheng;
mysql> create table test(xuehao char(10) not null,nianling int(3) not null,xingming char(36) not null,chengji varchar(3) not null);
mysql> insert into test values(201001,17,'zhangsan',60),(201002,18,'lisi',70),(201003,19,'wangwu',80),(201004,18,'zhaoliu',88),(201005,17,'lilei',55);
默认升序
mysql> select chengji from test order by chengji;
降序
mysql> select chengji from test order by chengji desc;
加入条件的排序
mysql> select xingming,chengji from test where chengji>=60 order by chengji desc;
多条件的排序
mysql> select * from test order by nianling desc,chengji desc;

2.对结果进行分组

1.使用GROUP BY语句来实现分组
2.通常结合聚会函数一起使用
3.可以按一个或多个字段对结果进行分组
4.GROUP BY的语法结构

select column_name,aggregate_function(column_name) from table_name where column_name operator value GROUP BY column_name;
mysql> select count(xingming),chengji from test where chengji>=60 group by nianling;
+-----------------+---------+
| count(xingming) | chengji |
+-----------------+---------+
|               1 | 60      |
|               2 | 70      |
|               1 | 80      |
+-----------------+---------+
3 rows in set (0.01 sec)

mysql> select count(xingming),chengji from test where chengji>=50 group by nianling order by count(xingming) desc;
+-----------------+---------+
| count(xingming) | chengji |
+-----------------+---------+
|               2 | 70      |
|               2 | 60      |
|               1 | 80      |
+-----------------+---------+
3 rows in set (0.00 sec)

3.限制结果条目

1.只返回SELECT查询结果的第一行或前几行
2.使用LIMIT语句限制条目
3.LIMIT语法结构

select column1,column2,... from table_name [offset,] number;
mysql> select * from test;
+--------+----------+----------+---------+
| xuehao | nianling | xingming | chengji |
+--------+----------+----------+---------+
| 201001 |       17 | zhangsan | 60      |
| 201002 |       18 | lisi     | 70      |
| 201003 |       19 | wangwu   | 80      |
| 201004 |       18 | zhaoliu  | 88      |
| 201005 |       17 | lilei    | 55      |
| 201006 |       18 | lili     | 90      |
+--------+----------+----------+---------+
6 rows in set (0.00 sec)
**前三个**
mysql> select * from test limit 3;
+--------+----------+----------+---------+
| xuehao | nianling | xingming | chengji |
+--------+----------+----------+---------+
| 201001 |       17 | zhangsan | 60      |
| 201002 |       18 | lisi     | 70      |
| 201003 |       19 | wangwu   | 80      |
+--------+----------+----------+---------+
3 rows in set (0.00 sec)
**第一个数字:位置偏移量是从零开始,第二个数字:返回记录行的最大数目第三到第五行**
mysql> select * from test limit 2,3;
+--------+----------+----------+---------+
| xuehao | nianling | xingming | chengji |
+--------+----------+----------+---------+
| 201003 |       19 | wangwu   | 80      |
| 201004 |       18 | zhaoliu  | 88      |
| 201005 |       17 | lilei    | 55      |
+--------+----------+----------+---------+
3 rows in set (0.00 sec)

4.设置别名

1.使用AS语句设置别名,关键字AS可省略
2.设置别名时,保证不能与库中其他表或字段名称冲突
3.别名的语法结构

select column_name AS alias_name from table_name;
select column_name(s) from table_name AS alias_name;

实操
注:原字段或表名不会被改变

mysql> select xuehao as 学号,nianling as 年龄,xingming as 姓名,chengji as 成绩 from test;
+--------+--------+----------+--------+
| 学号   | 年龄   | 姓名     | 成绩   |
+--------+--------+----------+--------+
| 201001 |     17 | zhangsan | 60     |
| 201002 |     18 | lisi     | 70     |
| 201003 |     19 | wangwu   | 80     |
| 201004 |     18 | zhaoliu  | 88     |
| 201005 |     17 | lilei    | 55     |
| 201006 |     18 | lili     | 90     |
+--------+--------+----------+--------+
6 rows in set (0.00 sec)

**as 可以省略,表也可以设置别名,结果和上述一样**
mysql> select xuehao 学号,nianling 年龄,xingming 姓名,chengji 成绩 from test;
mysql> select cj.xuehao 学号,cj.nianling 年龄,cj.xingming 姓名,cj.chengji 成绩 from test as cj;

**as的用法**
mysql> select count(*) as number from test;
+--------+
| number |
+--------+
|      6 |
+--------+
1 row in set (0.00 sec)
mysql> select p.xuehao,p.xingming from test as p limit 2;
+--------+----------+
| xuehao | xingming |
+--------+----------+
| 201001 | zhangsan |
| 201002 | lisi     |
+--------+----------+
2 rows in set (0.00 sec)

**as作为连接语句,复制用法**
mysql> create table abc as select * from test;
Query OK, 6 rows affected (0.01 sec)
Records: 6  Duplicates: 0  Warnings: 0

mysql> select * from abc;
+--------+----------+----------+---------+
| xuehao | nianling | xingming | chengji |
+--------+----------+----------+---------+
| 201001 |       17 | zhangsan | 60      |
| 201002 |       18 | lisi     | 70      |
| 201003 |       19 | wangwu   | 80      |
| 201004 |       18 | zhaoliu  | 88      |
| 201005 |       17 | lilei    | 55      |
| 201006 |       18 | lili     | 90      |
+--------+----------+----------+---------+
6 rows in set (0.00 sec)

5.通配符

1.用于替换字符串中的部分字符
2.通常配合LIKE一起使用,并协同WHERE完成查询
3.常用通配符 :“% 表示零个,一个或多个 ”;“_ 表示单个字符”

mysql> select xingming,chengji from test where xingming like '%n';
+----------+---------+
| xingming | chengji |
+----------+---------+
| zhangsan | 60      |
+----------+---------+
1 row in set (0.00 sec)

mysql> select * from test where xingming like 'z%';
mysql> select * from test where xingming like 'zhang_an';
mysql> select * from test where xingming like 'l_s_';

**两者结合**
mysql> select * from test where xingming like '%sa_';

6.子查询

1.也称作内查询或者嵌套查询
2.先于主查询被执行,其结果将作为外层主查询的条件
3.在增删改查中都可以使用子查询
4.支持多层嵌套
5.IN语句是用来判断某个值是否在给定的结果集中
用法

mysql> select xuehao as 学号,xingming as 姓名,chengji as 成绩 from test where chengji in (select chengji from test where chengji>=60);
+--------+----------+--------+
| 学号   | 姓名     | 成绩   |
+--------+----------+--------+
| 201001 | zhangsan | 60     |
| 201002 | lisi     | 70     |
| 201003 | wangwu   | 80     |
| 201004 | zhaoliu  | 88     |
| 201006 | lili     | 90     |
+--------+----------+--------+
5 rows in set (0.00 sec)
降序:
mysql> select xuehao as 学号,xingming as 姓名,chengji as 成绩 from test where chengji in (select chengji from test where chengji>=60 ) order by chengji desc;

mysql> create table source as select * from test;
mysql> delete from source;
mysql> select * from source;
Empty set (0.00 sec)

mysql> insert into source select * from test where chengji in (select chengji from test where chengji>=80);
mysql> select * from source;
+--------+----------+----------+---------+
| xuehao | nianling | xingming | chengji |
+--------+----------+----------+---------+
| 201003 |       19 | wangwu   | 80      |
| 201004 |       18 | zhaoliu  | 88      |
| 201006 |       18 | lili     | 90      |
+--------+----------+----------+---------+
3 rows in set (0.00 sec)

**修改:**
mysql> alter table source add column num int(3);	**#添加一列num**
mysql> desc source;			**#查表的结构**
mysql> update source set num=101 where chengji in (select chengji from test where chengji >=80);
mysql> select * from source;
+--------+----------+----------+---------+------+
| xuehao | nianling | xingming | chengji | num  |
+--------+----------+----------+---------+------+
| 201003 |       19 | wangwu   |      80 |  101 |
| 201004 |       18 | zhaoliu  |      88 |  101 |
| 201006 |       18 | lili     |      90 |  101 |
+--------+----------+----------+---------+------+
3 rows in set (0.00 sec)

mysql> select * from (select * from test where chengji>=75)as a;
mysql> select * from (select * from test where chengji>=75)a;
mysql> select * from (select * from test where chengji>=75)a order by chengji desc;
mysql> delete from test where chengji in(select chengji from (select * from test where chengji >=75)a);
mysql> select * from test;
+--------+----------+----------+---------+
| xuehao | nianling | xingming | chengji |
+--------+----------+----------+---------+
| 201001 |       17 | zhangsan |      60 |
| 201002 |       18 | lisi     |      70 |
| 201005 |       17 | tianqi   |      55 |
+--------+----------+----------+---------+
3 rows in set (0.00 sec)
## 7.NULL值
 **1.表示缺失的值
 2.与数字0或者空白(spaces)是不同的
 3.使用IS NULL或IS NOT NULL进行判断**
 **4.NULL值和空值的区别**
                  1.空值长度为0,不占空间;NULL值的长度为NULL,占用空间
                  2.IS NULL无法判断空值
                  3.空值使用"=“或者”<>"来处理
                  4.COUNT () 计算时,NULL会忽略,空值会加入计算
**插入空值**
mysql> alter table chengji add column class varchar(25);
mysql> select * from chengji;
mysql> insert into chengji values(6,20,'liuliu',83,null,3);
mysql> select * from chengji;
+----+-----+----------+--------+------+-------+
| id | age | name     | scrore | num  | class |
+----+-----+----------+--------+------+-------+
|  1 |  17 | zhangsan |   60.0 | NULL | NULL  |
|  2 |  18 | lisi     |   70.0 | NULL | NULL  |
|  3 |  18 | wangwu   |   80.0 | NULL | NULL  |
|  4 |  17 | zhaoliu  |   95.0 | NULL | NULL  |
|  5 |  19 | tianqi   |   55.0 | NULL | NULL  |
|  6 |  20 | liuliu   |   83.0 | NULL | 3     |
+----+-----+----------+--------+------+-------+
6 rows in set (0.00 sec)

 **null用法**
mysql> select * from chengji where class is null;
+----+-----+----------+--------+------+-------+
| id | age | name     | scrore | num  | class |
+----+-----+----------+--------+------+-------+
|  1 |  17 | zhangsan |   60.0 | NULL | NULL  |
|  2 |  18 | lisi     |   70.0 | NULL | NULL  |
|  3 |  18 | wangwu   |   80.0 | NULL | NULL  |
|  4 |  17 | zhaoliu  |   95.0 | NULL | NULL  |
|  5 |  19 | tianqi   |   55.0 | NULL | NULL  |
+----+-----+----------+--------+------+-------+
5 rows in set (0.01 sec)

mysql> select * from chengji where class is not null;
+----+-----+--------+--------+------+-------+
| id | age | name   | scrore | num  | class |
+----+-----+--------+--------+------+-------+
|  6 |  20 | liuliu |   83.0 | NULL | 3     |
+----+-----+--------+--------+------+-------+
1 row in set (0.00 sec)
## 8.正则表达式
 **1.根据指定的匹配模式匹配记录中符合要求的特殊字符
 2.使用REGEXP关键字指定匹配模式**

**常用匹配模式**
| 字符 |    说明   |
|:-------:| :-------:|
|  ^| 匹配开始字符 |
| $ | 匹配结束字符 |
| . | 匹配任意单个字符 |
| * |  匹配任意个前面的字符|
| + | 匹配前面字符至少1次|
|p1```|```p2|匹配p1或p2|
| […] | 匹配字符集中括号内的任何字符 |
|[^…]  |匹配不在括号内的任何字符  |
| {n} | 匹配前面的字符串n次 |
|{n,m} |  匹配前面的字符串至少n次,至多m次|
**案列**
mysql> select * from test where xingming regexp '^z';		以什么开头
mysql> select * from test where xingming regexp 'i$';		以什么结尾
mysql> select * from test where xingming regexp 'zha';		
mysql> select * from test where xingming regexp 'zha.gsan';	匹配单个字符
mysql> select * from test where xingming regexp '^[z|l]';	以z或l开头
mysql> select * from test where xingming regexp '^[^z|l]';	不以z或l开头
mysql> select * from test where xingming regexp 'e{3,5}';
mysql> select * from test where xingming regexp 'ee*';
mysql> select * from test where xingming regexp '^[d-f]';
## 9.算术运算符
 **MySQL支持的算术运算符**
| 字符 |    说明   |
|:-------:| :-------:|
|+	|加法|
|-|   减法|
|*|	乘法|
|/|  除法|
|%|	取余数|
 **实操**
mysql> select * from test where xingming regexp '^z';		以什么开头
mysql> select * from test where xingming regexp 'i$';		以什么结尾
mysql> select * from test where xingming regexp 'zha';		
mysql> select * from test where xingming regexp 'zha.gsan';	匹配单个字符
mysql> select * from test where xingming regexp '^[z|l]';	以z或l开头
mysql> select * from test where xingming regexp '^[^z|l]';	不以z或l开头
mysql> select * from test where xingming regexp 'e{3,5}';
mysql> select * from test where xingming regexp 'ee*';
mysql> select * from test where xingming regexp '^[d-f]';
mysql> select 2+3,3-1,4*5,5/4,7%3;
+-----+-----+-----+--------+------+
| 2+3 | 3-1 | 4*5 | 5/4    | 7%3  |
+-----+-----+-----+--------+------+
|   5 |   2 |  20 | 1.2500 |    1 |
+-----+-----+-----+--------+------+
1 row in set (0.01 sec)

mysql> create table suanshu as select 2+3,3-1,4*5,5/4,7%3;
mysql> desc suanshu;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| 2+3   | int(3)       | NO   |     | 0       |       |
| 3-1   | int(3)       | NO   |     | 0       |       |
| 4*5   | int(3)       | NO   |     | 0       |       |
| 5/4   | decimal(5,4) | YES  |     | NULL    |       |
| 7%3   | int(1)       | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
## 10.逻辑运算符
 **1.又称为布尔运算符
 2.用来判断表达式的真假
 3.常用的逻辑运算符**

| 运算符 |    说明   |
|:-------:| :-------:|
|NOT或!|	逻辑非|
|AND或&&|	逻辑与
|OR或```||```	|逻辑或|
|XOR|	逻辑异或|
mysql> select 4&5,4|5,4&~3,3^4,2<<2,2>>1;
+-----+-----+------+-----+------+------+
| 4&5 | 4|5 | 4&~3 | 3^4 | 2<<2 | 2>>1 |
+-----+-----+------+-----+------+------+
|   4 |   5 |    4 |   7 |    8 |    1 |
+-----+-----+------+-----+------+------+
1 row in set (0.00 sec)
## 11.位运算符
**1.对二进制进行计算的运算符
2.常用的位运算符**
&	按位与
|	按位或
~	按位取反
^	按位异或
<<	按位左移
>>	按位右移
## 12.连接查询
**MySQL的连接查询,通常都是将来自两个或多个表的行结合起来,基于这些表之间的共同字段,进行数据的拼接。首先,要确定一个主表作为结果集,然后将其他表的行有选择性的连接到选定的主表结果集上。使用较多的连接查询包括:内连接,左连接和右连接。
外连接:分为左连接和右连接。
左外连接就是以左表为准,去匹配右表,左表有多少条数据,结果就是多少条数据。左表有的数据正常显示,右表没有的数据就用NULL显示。**
//**案列**
mysql> create table chengji(id int(3) not null primary key auto_increment,age int(3) not null,name varchar(64) not null,scrore decimal(4,1));
mysql> insert into chengji(age,name,scrore) values(17,'zhangsan',60),(18,'lisi',70),(18,'wangwu',80),(17,'zhaoliu',95),(19,'tianqi',55);
mysql> select * from chengji;
+----+-----+----------+--------+
| id | age | name     | scrore |
+----+-----+----------+--------+
|  1 |  17 | zhangsan |   60.0 |
|  2 |  18 | lisi     |   70.0 |
|  3 |  18 | wangwu   |   80.0 |
|  4 |  17 | zhaoliu  |   95.0 |
|  5 |  19 | tianqi   |   55.0 |
+----+-----+----------+--------+
5 rows in set (0.00 sec)

mysql> create table sushe(id int(3) not null primary key,num int(3) not null);
mysql> insert into sushe values(1,305),(2,306),(3,307),(8,308),(9,309),(10,310);
mysql> select * from sushe;
+----+-----+
| id | num |
+----+-----+
|  1 | 305 |
|  2 | 306 |
|  3 | 307 |
|  8 | 308 |
|  9 | 309 |
| 10 | 310 |
+----+-----+
6 rows in set (0.00 sec)

 **内连接**
mysql> select * from chengji c inner join sushe s on c.id=s.id;
+----+-----+----------+--------+----+-----+
| id | age | name     | scrore | id | num |
+----+-----+----------+--------+----+-----+
|  1 |  17 | zhangsan |   60.0 |  1 | 305 |
|  2 |  18 | lisi     |   70.0 |  2 | 306 |
|  3 |  18 | wangwu   |   80.0 |  3 | 307 |
+----+-----+----------+--------+----+-----+
3 rows in set (0.00 sec)

**左连接**
mysql> select * from chengji c left join sushe s on c.id=s.id;
+----+-----+----------+--------+------+------+
| id | age | name     | scrore | id   | num  |
+----+-----+----------+--------+------+------+
|  1 |  17 | zhangsan |   60.0 |    1 |  305 |
|  2 |  18 | lisi     |   70.0 |    2 |  306 |
|  3 |  18 | wangwu   |   80.0 |    3 |  307 |
|  4 |  17 | zhaoliu  |   95.0 | NULL | NULL |
|  5 |  19 | tianqi   |   55.0 | NULL | NULL |
+----+-----+----------+--------+------+------+
5 rows in set (0.00 sec)

**右连接**
mysql> select * from chengji c right join sushe s on c.id=s.id;
+------+------+----------+--------+----+-----+
| id   | age  | name     | scrore | id | num |
+------+------+----------+--------+----+-----+
|    1 |   17 | zhangsan |   60.0 |  1 | 305 |
|    2 |   18 | lisi     |   70.0 |  2 | 306 |
|    3 |   18 | wangwu   |   80.0 |  3 | 307 |
| NULL | NULL | NULL     |   NULL |  8 | 308 |
| NULL | NULL | NULL     |   NULL |  9 | 309 |
| NULL | NULL | NULL     |   NULL | 10 | 310 |
+------+------+----------+--------+----+-----+
6 rows in set (0.00 sec)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值