肝通宵写了三万字把SQL数据库的所有命令,函数,运算符讲得明明白白讲解,内容实在丰富,建议收藏+三连好评

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Golang全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注go)
img

正文

SELECT column1, column2, …
FROM table_name
WHERE condition1 AND condition2 AND condition3 …;

OR语法

SELECT column1, column2, …
FROM table_name
WHERE condition1 OR condition2 OR condition3 …;

NOT语法

SELECT column1, column2, …
FROM table_name
WHERE NOT condition;

我们还是假设有如下“Customers”表:
在这里插入图片描述
AND 示例
以下 SQL 语句从Customers中选择国家为"Germany"且city为"Berlin"的所有字段:

SELECT * FROM Customers
WHERE Country=‘Germany’ AND City=‘Berlin’;

OR 示例
选取所有"Customers" 中city为"Berlin" OR “München”:

SELECT * FROM Customers
WHERE City=‘Berlin’ OR City=‘München’;

NOT 示例
从 “Customers” 选取country不是 "Germany"的字段:

SELECT * FROM Customers
WHERE NOT Country=‘Germany’;

结合AND, OR and NOT
从"Customers" 中选择国家为"Germany"”且城市必须为"Berlin" OR "München"的所有字段(使用括号形成复杂的表达式):

SELECT * FROM Customers
WHERE Country=‘Germany’ AND (City=‘Berlin’ OR City=‘München’);

从 “Customers"中选择国家不是“Germany” 也不是"USA":的所有字段:

SELECT * FROM Customers
WHERE NOT Country=‘Germany’ AND NOT Country=‘USA’;

练习
选择 City 列值为 ‘Berlin’ 且 PostalCode 列值为 12209 的所有记录。

SELECT * FROM Customers
WHERE City = ‘Berlin’
AND PostalCode= 12209;

ORDER BY 关键字

该ORDER BY关键字用于按升序或降序对结果集进行排序。ORDER BY默认情况下,关键字按升序对记录进行排序。要按降序对记录进行排序,请使用 DESC关键字。
ORDER BY 语法

SELECT column1, column2, …
FROM table_name
ORDER BY column1, column2, … ASC|DESC;

我们还是假设有这个“Customers”表如下:
在这里插入图片描述
ORDER BY 示例
从“Customers”表中选择所有客户,按“Country”列排序:

SELECT * FROM Customers
ORDER BY Country;

ORDER BY DESC 示例
从“Customers”表中选择所有客户,按“Country”列按 DESCENDING 排序:

SELECT * FROM Customers
ORDER BY Country DESC;

ORDER BY 多列示例
从“Customers”表中选择所有客户,按“Country”和“CustomerName”列排序。这意味着它按国家/地区排序,但如果某些行具有相同的国家/地区,则按 CustomerName 排序:

SELECT * FROM Customers
ORDER BY Country, CustomerName;

从“Customers”表中选择所有客户,按“Country”升序和“CustomerName”列降序排序:

SELECT * FROM Customers
ORDER BY Country ASC, CustomerName DESC;

练习
从Customers表中选择所有记录,按城市列的字母顺序对结果进行排序。

SELECT * FROM Customers
ORDER BY City;

INSERT INTO 插入语句

该INSERT INTO语句用于在表中插入新记录。
INSERT语法
可以INSERT INTO 用两种方式编写语句:
1- 指定要插入的列名和值:

INSERT INTO table_name (column1, column2, column3, …)
VALUES (value1, value2, value3, …);

2-如果要为表的所有列添加值,则无需在 SQL 查询中指定列名。但是,请确保值的顺序与表中的列顺序相同。在这里, INSERT INTO语法如下:

INSERT INTO table_name
VALUES (value1, value2, value3, …);

我们假设还是有着样一个Customers表:
在这里插入图片描述
INSERT示例
以下 SQL 语句在“Customers”表中插入一条新记录:

INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES (‘Cardinal’, ‘Tom B. Erichsen’, ‘Skagen 21’, ‘Stavanger’, ‘4006’, ‘Norway’);

运行显示如下:
在这里插入图片描述
您是否注意到我们没有在 CustomerID 字段中插入任​​何数字?CustomerID 列是一个自动递增字段,将在新记录插入表中时自动生成。
仅在指定列中插入数据
下面的 SQL 语句将插入一条新记录,但只在“CustomerName”、“City”和“Country”列中插入数据(CustomerID 会自动更新):

INSERT INTO Customers (CustomerName, City, Country)
VALUES (‘Cardinal’, ‘Stavanger’, ‘Norway’);

运行后将会显示如下:
在这里插入图片描述
练习:
表中插入一条新记录。

INSERT INTO Customers
(

CustomerName,
Address,
City,
PostalCode,
Country
)

VALUES

(

‘Hekkan Burger’,
‘Gateveien 15’,
‘Sandnes’,
‘4306’,
‘Norway’
)
;

NULL 空值

具有 NULL 值的字段是没有值的字段。如果表中的字段是可选的,则可以在不向该字段添加值的情况下插入新记录或更新记录。然后,该字段将保存为 NULL 值。
注意: NULL 值不同于零值或包含空格的字段。具有 NULL 值的字段是在创建记录期间留空的字段!
如何测试 NULL 值?
无法使用比较运算符(例如 =、< 或 <>)测试 NULL 值。我们将不得不改用IS NULL和 IS NOT NULL运算符。
IS NULL 语法

SELECT column_names
FROM table_name
WHERE column_name IS NULL;

IS NOT NULL 语法

SELECT column_names
FROM table_name
WHERE column_name IS NOT NULL;

我们还是以”Customers”表为例子:
在这里插入图片描述

IS NULL 运算符
列出了 "Address"字段中具有 NULL 值的所有客户:

SELECT CustomerName, ContactName, Address
FROM Customers
WHERE Address IS NULL;

提示:始终使用 IS NULL 来查找 NULL 值。
IS NOT NULL 运算符
该IS NOT NULL运算符用于测试非空值(NOT NULL 值)。
列出了在 "Address”字段中具有值的所有客户:

SELECT CustomerName, ContactName, Address
FROM Customers
WHERE Address IS NOT NULL;

练习:
从列为空的Customers位置选择所有记录PostalCode。

SELECT * FROM Customers
WHERE PostalCode IS NULL;

UPDATE更新语句

UPDATE语句用于修改表中的现有记录。
UPDATE 语法:

UPDATE table_name
SET column1 = value1, column2 = value2, …
WHERE condition;

注意: 更新表中的记录时要小心!注意 WHERE语句中的子句UPDATE。该WHERE子句指定应该更新哪些记录。如果省略该WHERE子句,表中的所有记录都将被更新!
我们还是以“Customers”表为例:
在这里插入图片描述
更新表
更新CustomerID = 1的用户名字和城市数据

UPDATE Customers
SET ContactName = ‘Alfred Schmidt’, City= ‘Frankfurt’
WHERE CustomerID = 1;

更新过后将会如下:
在这里插入图片描述
更新多条记录
该WHERE子句确定将更新多少条记录。
将国家为"Mexico"的所有记录的 ContactName 更新为“Juan”:

UPDATE Customers
SET ContactName=‘Juan’
WHERE Country=‘Mexico’;

更新后将会变成:
在这里插入图片描述
更新警告!
更新记录时要小心。如果省略该 WHERE子句,则所有记录都将被更新!
例如:

UPDATE Customers
SET ContactName=‘Juan’;

则会导致如下结果:
在这里插入图片描述
练习:
更新表City中所有记录的Customers列。

UPDATE Customers
SET City = ‘Oslo’;

DELETE删除语句

该DELETE语句用于删除表中的现有记录。
删除语法

DELETE FROM table_name WHERE condition;

注意: 删除表中的记录时要小心!注意 WHERE语句中的子句 DELETE。该WHERE条款指定应删除哪些记录。如果省略该WHERE子句,表中的所有记录都将被删除!
哈哈哈哈,我们还是以“Customers”表为例子如下:
在这里插入图片描述
删除示例
从“Customers”表中删除客户“Alfreds Futterkiste”:

DELETE FROM Customers WHERE CustomerName=‘Alfreds Futterkiste’;

于是就变成这样:
在这里插入图片描述
删除所有记录
可以在不删除表的情况下删除表中的所有行。这意味着表结构、属性和索引将保持不变

DELETE FROM table_name;

例如:删除“Customers”表中的所有行,但不删除该表:

DELETE FROM Customers;

练习:从Customers表中删除Country值为“挪威”的所有记录。

DELETE FROM Customers
WHERE Country = ‘Norway’;

TOP、LIMIT、FETCH FIRST 或 ROWNUM限制子句

SELECT TOP 子句
SELECT TOP子句用于指定要返回的记录数。SELECT TOP子句在具有数千条记录的大表上很有用。返回大量记录会影响性能。
注意: 并非所有数据库系统都支持该 SELECT TOP子句。MySQL 支持LIMIT子句选择有限数量的记录,而 Oracle 使用FETCH FIRST n ROWSONLYROWNUM
Server / MS 访问语法:

SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition;

MySQL 语法:

SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;

Oracle 12 语法:

SELECT column_name(s)
FROM table_name
ORDER BY column_name(s)
FETCH FIRST number ROWS ONLY;

比如还是“Customers”表如下
在这里插入图片描述
TOP、LIMIT 和 FETCH FIRST示例
从 "Customers表中选择前三个记录(用于 SQL Server/MS Access):

SELECT TOP 3 * FROM Customers;

MySQL 的等效示例:

SELECT * FROM Customers
LIMIT 3;

Oracle 的等效示例:

SELECT * FROM Customers
FETCH FIRST 3 ROWS ONLY;

TOP PERCENT 示例
从"Customers“表中选择前 50% 的记录(用于 SQL Server/MS Access):

SELECT TOP 50 PERCENT * FROM Customers;

Oracle 的等效示例:

SELECT * FROM Customers
FETCH FIRST 50 PERCENT ROWS ONLY;

添加 WHERE 条款
从“Customers”表中选择前三个记录,其中国家是“Germany”(对于 SQL Server/MS Access):

SELECT TOP 3 * FROM Customers
WHERE Country=‘Germany’;

MySQL 的等效示例

SELECT * FROM Customers
WHERE Country=‘Germany’
LIMIT 3;

Oracle 的等效示例:

SELECT * FROM Customers
WHERE Country=‘Germany’
FETCH FIRST 3 ROWS ONLY;

MIN() 和 MAX()函数求最大最小值

MIN()函数返回所选列的最小值。MAX()函数返回所选列的最大值。
MIN() 语法

SELECT MIN(column_name)
FROM table_name
WHERE condition;

MAX() 语法

SELECT MAX(column_name)
FROM table_name
WHERE condition;

现在我们换一个新的表Product如下:
在这里插入图片描述
MIN() 示例
查找最便宜产品的价格:

SELECT MIN(Price) AS SmallestPrice
FROM Products;

显示如下:
在这里插入图片描述
MAX() 示例
查找最贵产品的价格:

SELECT MAX(Price) AS LargestPrice
FROM Products;

返回如下:
在这里插入图片描述
练习:
使用该MIN函数选择Price列的最小值的记录。

SELECT MIN(Price) FROM Products;

COUNT()、AVG() 和 SUM()函数

该COUNT()函数返回与指定条件匹配的行数。
COUNT() 语法

SELECT COUNT(column_name)
FROM table_name
WHERE condition;

该AVG()函数返回数字列的平均值。
AVG() 语法

SELECT AVG(column_name)
FROM table_name
WHERE condition;

该SUM()函数返回数字列的总和。
SUM() 语法

SELECT SUM(column_name)
FROM table_name
WHERE condition;

我们还是用表product
在这里插入图片描述
COUNT() 示例
查找产品数量:

SELECT COUNT(ProductID)
FROM Products;

注意: NULL 值不计算在内。
AVG() 示例
查找所有产品的平均价格:

SELECT AVG(Price)
FROM Products;

注意: NULL 值被忽略。
假设我现在有“OrderDetails”表如下:
在这里插入图片描述
SUM() 示例
查找“OrderDetails”表中“Quantity”字段的总和:

SELECT SUM(Quantity)
FROM OrderDetails;

返回如下:
在这里插入图片描述
注意: NULL 值被忽略。
练习
返回Price值设置为18的记录数

SELECT COUNT(*) FROM Products
WHERE Price = 18;

LIKE运算符

该LIKE运算符在 WHERE子句中用于搜索列中的指定模式。有两个通配符经常与 LIKE运算符结合使用:
百分号 (%) 代表零、一个或多个字符
下划线 () 代表一个,单个字符
但是呢注意: MS Access 使用星号 (*) 代替百分号 (%),使用问号 (?) 代替下划线 (
)
当然百分号和下划线也可以组合使用!
LIKE 语法

SELECT column1, column2, …
FROM table_name
WHERE columnN LIKE pattern;

提示:您还可以使用 AND或OR运算符组合任意数量的条件。
以下是一些示例,显示了LIKE带有“%”和“_”通配符的不同运算符:
在这里插入图片描述
所对应意思为:
第一行:匹配任何以a开头的字段
第二行:匹配任何以a结尾的字段
第三行:匹配任何具有“or”的字段
第四行:查找第二个位置有“r”的任何值
第五行:查找任何以“a”开头且长度至少为 2 个字符的值
第六行:查找任何以“a”开头且长度至少为 3 个字符的值
第七行:查看以“a”开头并以“o”结尾的任何值
比如我们还是有如下Customers”表:
在这里插入图片描述

LIKE 示例
选择 CustomerName 以“a”开头的所有客户:

SELECT * FROM Customers
WHERE CustomerName LIKE ‘a%’;

选择 CustomerName 以“a”结尾的所有客户:

SELECT * FROM Customers
WHERE CustomerName LIKE ‘%a’;

选择 CustomerName 中任何位置都有“或”的所有客户:

SELECT * FROM Customers
WHERE CustomerName LIKE ‘%or%’;

选择 CustomerName 中第二个位置为“r”的所有客户:

SELECT * FROM Customers
WHERE CustomerName LIKE ‘_r%’;

选择 CustomerName 以“a”开头且长度至少为 3 个字符的所有客户:

SELECT * FROM Customers
WHERE CustomerName LIKE ‘a__%’;

选择 ContactName 以“a”开头并以“o”结尾的所有客户:

SELECT * FROM Customers
WHERE ContactName LIKE ‘a%o’;

选择 CustomerName 不以“a”开头的所有客户:

SELECT * FROM Customers
WHERE CustomerName NOT LIKE ‘a%’;

通配符*?!等

这是英文文档所有通配符描述(实在不想翻译,大家自己看看)
在这里插入图片描述
在这里插入图片描述
假设我们还是有如下“Customers”表:
在这里插入图片描述
使用 % 通配符
选择 City 以“ber”开头的所有客户:

SELECT * FROM Customers
WHERE City LIKE ‘ber%’;

选择 City 包含“es”的所有客户:

SELECT * FROM Customers
WHERE City LIKE ‘%es%’;

返回如下:
在这里插入图片描述
使用 _ 通配符
选择 City 以任何字符开头,后跟“ondon”的所有客户:

SELECT * FROM Customers
WHERE City LIKE ‘_ondon’;

选择 City 以“L”开头、后跟任意字符、“n”、任意字符、“on”的所有客户:

SELECT * FROM Customers
WHERE City LIKE ‘L_n_on’;

使用 [charlist] 通配符
选择 City 以“b”、“s”或“p”开头的所有客户:

SELECT * FROM Customers
WHERE City LIKE ‘[bsp]%’;

选择 City 以“a”、“b”或“c”开头的所有客户:

SELECT * FROM Customers
WHERE City LIKE ‘[a-c]%’;

使用 [!charlist] 通配符
选择 City 不是以“b”、“s”或“p”开头的所有客户:

SELECT * FROM Customers
WHERE City LIKE ‘[!bsp]%’;

或者

SELECT * FROM Customers
WHERE City NOT LIKE ‘[bsp]%’;

IN运算符

IN运算符允许您在 WHERE子句中指定多个值。
IN操作是针对多个速记 OR条件。
IN 语法

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, …);

我们还是以“Customers”表为例子:
在这里插入图片描述
IN 运算符示例
选择位于’Germany’, ‘France’, 'UK’的所有客户:

SELECT * FROM Customers
WHERE Country IN (‘Germany’, ‘France’, ‘UK’);

选择不在选择位于’Germany’, ‘France’, 'UK’的所有客户:

SELECT * FROM Customers
WHERE Country NOT IN (‘Germany’, ‘France’, ‘UK’);

选择与 Suppliers来自相同国家的所有客户:

SELECT * FROM Customers
WHERE Country IN (SELECT Country FROM Suppliers);

返回如下
在这里插入图片描述

BETWEEN 之间运算符

在BETWEEN操作者选择一个给定的范围内的值。值可以是数字、文本或日期。
BETWEEN 语法

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

我们有用到如下的product表:
在这里插入图片描述
between示例
选择价格在 10 到 20 之间的所有产品:

SELECT * FROM Products
WHERE Price BETWEEN 10 AND 20;

要显示上一个示例范围之外的产品,请使用 NOT BETWEEN:

SELECT * FROM Products
WHERE Price NOT BETWEEN 10 AND 20;

数字之间
选择价格在 10 到 20 之间的所有产品。此外;不要显示 CategoryID 为 1,2 或 3 的产品:

SELECT * FROM Products
WHERE Price BETWEEN 10 AND 20
AND CategoryID NOT IN (1,2,3);

文本值之间
语句选择 Carnarvon Tigers 和 Mozzarella di Giovanni 之间具有 ProductName 的所有产品

SELECT * FROM Products
WHERE ProductName BETWEEN ‘Carnarvon Tigers’ AND ‘Mozzarella di Giovanni’
ORDER BY ProductName;

选择产品名称介于 Carnarvon Tigers 和 Chef Anton’s Cajun Seasoning 之间的所有产品:

SELECT * FROM Products
WHERE ProductName BETWEEN “Carnarvon Tigers” AND “Chef Anton’s Cajun Seasoning”
ORDER BY ProductName;

NOT BETWEEN 文本值
选择 ProductName 不在 Carnarvon Tigers 和 Mozzarella di Giovanni 之间的所有产品:

SELECT * FROM Products
WHERE ProductName NOT BETWEEN ‘Carnarvon Tigers’ AND ‘Mozzarella di Giovanni’
ORDER BY ProductName;

我们现在假设有如下"Orders" 表:
在这里插入图片描述
日期之间示例
选择 OrderDate 介于 ‘01-July-1996’ 和 ‘31-July-1996’ 之间的所有订单

SELECT * FROM Orders
WHERE OrderDate BETWEEN #07/01/1996# AND #07/31/1996#;

或者使用:

SELECT * FROM Orders
WHERE OrderDate BETWEEN ‘1996-07-01’ AND ‘1996-07-31’;

AS 别名使用

别名列语法

SELECT column_name AS alias_name
FROM table_name;

别名表语法

SELECT column_name(s)
FROM table_name AS alias_name;

现在我们还是假设有custorm表如下:
在这里插入图片描述
还有一个oeder表
在这里插入图片描述
列的别名示例
创建两个别名,一个用于 CustomerID 列,另一个用于 CustomerName 列:

SELECT CustomerID AS ID, CustomerName AS Customer
FROM Customers;

创建两个别名,一个用于 CustomerName 列,另一个用于 ContactName 列。注意:如果别名包含空格,则需要双引号或方括号:

SELECT CustomerName AS Customer, ContactName AS [Contact Person]
FROM Customers;

创建一个名为“Address”的别名,该别名组合了四列(Address、PostalCode、 City 和Country):

SELECT CustomerName, Address + ', ’ + PostalCode + ’ ’ + City + ', ’ + Country AS Address
FROM Customers;

注意:要使上面的 SQL 语句在 MySQL 中工作,请使用以下命令:

SELECT CustomerName, CONCAT(Address,', ‘,PostalCode,’, ‘,City,’, ',Country) AS Address
FROM Customers;

表别名示例
选择来自 CustomerID=4(Around the Horn)的客户的所有订单。我们使用“Customers”和“Orders”表,分别给它们表别名“c”和“o”(这里我们使用别名来缩短SQL)

SELECT o.OrderID, o.OrderDate, c.CustomerName
FROM Customers AS c, Orders AS o
WHERE c.CustomerName=‘Around the Horn’ AND c.CustomerID=o.CustomerID;

以下 SQL 语句与上面相同,但没有别名:

SELECT Orders.OrderID, Orders.OrderDate, Customers.CustomerName
FROM Customers, Orders
WHERE Customers.CustomerName=‘Around the Horn’ AND Customers.CustomerID=Orders.CustomerID;

别名在以下情况下很有用:
1.一个查询涉及多个表
2.一个查询涉及多个表
3.查询中使用的函数
4.列名很大或不太可读
5.两列或更多列组合在一起

JOIN连接

JOIN子句用于行从两个或更多表根据它们之间的相关列结合。
假设我们现在有"Orders" 表如下
在这里插入图片描述
同时还有表 “Customers” 如下:
在这里插入图片描述
请注意,“Orders”表中的“CustomerID”列指的是“Customers”表中的“CustomerID”。上面两个表之间的关系是“CustomerID”列。
示例
使用INNER JOIN选择在两个表中具有匹配值的记录:

SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;

返回如下
在这里插入图片描述
不同类型的 SQL JOIN
在这里插入图片描述

INNER JOIN内连接关键字

INNER JOIN关键字选择在两个表中具有匹配值的记录。
语法:

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;

画个图理解:
在这里插入图片描述
假设我们还是有order表
在这里插入图片描述
customer表
在这里插入图片描述
INNER JOIN 示例
选择所有包含客户信息的订单:

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Go)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
G4ubmV0L3dlaXhpbl80NjIxMTI2OQ==,size_16,color_FFFFFF,t_70)

INNER JOIN内连接关键字

INNER JOIN关键字选择在两个表中具有匹配值的记录。
语法:

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;

画个图理解:
在这里插入图片描述
假设我们还是有order表
在这里插入图片描述
customer表
在这里插入图片描述
INNER JOIN 示例
选择所有包含客户信息的订单:

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Go)
[外链图片转存中…(img-f7uySjtC-1713239701102)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值