数据库系统基础教程一:关系数据库与关系代数

数据库:关系运算整理大全(包括关系代数、元组关系演算、域关系演算) 数据库关系运算: 1. 关系代数(基本关系代数、附加关系代数、扩展关系代数) 2. 元组关系演算 3. 域关系演算 阅读详情

       6年前曾经学过一本国产的数据库教材,但是当时脑子还没有开化,或者对于教材的内容缺少感性认识,因此学习之后没有任何效果。最近因为要做一个带CMS的系统,需要把数据库理论重新学习一遍,因此买了本数据库系统基础教程来看,这一系列文章作为对本次学习的一个总结和概括。

       1.1 数据库系统

        数据库指由DBMS管理的数据和集合。

        DBMS需要具有如下功能:(1) 支持用户使用DDL来定义数据的逻辑结构。(2) 支持用户使用DQL和DML来查询和更新存储的数据。(3) 支持海量数据高效处理。 (4) 具有持久性容可恢复性。 (5) 并发控制性或原子性。文件系统不满足上述五点。

        数据库经历了几代的发展,从早期的层次型、网状到现代的关系型。关系型数据库起源于Ted Codd的著名论文《大型共享数据库的关系模型》,目前数据向面对对象领域进行新的发展。在超大型与小型两极都取得了许多发展,在面向信息集成中,数据仓库用来整合多个数据库。


        1.2 DBMS概述

        此处介绍DBMS的基本模块单元。

       

       对于上面这张图的解释如下。在最上端,有两类数据库用户。一类为DBA,他们创建数据库模式。另一类为用户和应用程序,他们查询或修改数据。在图的最下面是物理存储器,数据存储在磁盘上并由存储管理器来写入和读入缓存。缓冲区管理用来管理可用内存,并提供块数据的高速存储。记录管理器用来管理数据文件、索引文件、数据格式等,管理这些信息有助于快速从数据文件中取出所需数据。查询处理器包括查询编译器和执行引擎,查询编译器把查询转换成查询序列,包括 查询分析、预处理、查询优化器。事务管理需要日志与并发控制,执行引擎用于执行上层编译的命令序列并获取数据,它通常与缓冲获取数据。事务处理包含日志和并发控制,并发控制需要锁表的支持。


        2 关系数据模型

        在介绍了数据库的基本概念后,我们下面来学习关系数据库的基础概念。

        2.1 数据模型

        一种数据模型包括三方面的内容,物理数据结构、数据上的操作、数据上的约束。典型的数据模型有关系模型、头结构化数据模型XML、OO数据模型

        2.2 关系模型基础

        直观来看,关系模型可以看作二维的表。关系的列称为属性。

        关系名和属性的组合称为关系的模式,记作R(A,B,C,...),关系的属性可以任意排列。 

        关系中的行称为元组。

        关系的每个属性都有一个类型,称为域,在关系模式中可以进行体现,如R(A:string,B:int...)。

        一个关系中元组的集合称为关系的实例,关系中元组可以任意排列。

        键是由一个或多个属性组成,键约束保证关系实例上,任何两个元组都不可能有相同的键。键的表示为属性加下划线。如R(ID,A ,B)。

        2.3 在SQL中定义关系

        SQL中有三种类型的关系:持久存储的关系,即表。临时存储的关系,即View。而由DBMS自己临时生成的关系称为临时表。

        数据类型:这里只介绍日期和时间。SQL中的日期表示为DATE '2013-01-24'  时间表示为 TIME '21:00:00.250',即在类型后以单引号括起来字符串值。

        下面我们用SQL创建一个简单的关系:

         

create table Country
(
    id     int auto_increment,
    name   char(32) unique default "",

    primary key(id)
);
删除关系需要用drop table Country; 修改关系使用alter table Country add location char(16) /drop name; 主键用primary key来声明,单个属性的键可以在属性后说明,若多个属性组成的主键,则必须采用上面的方式来说明。primary key的属性必须不能相同且不能为NULL,而unique只要求不能相同,但可以为NULL。注意NULL不能和NULL作比较,unique的属性如果未声明为NOT NULL,则可以有多个NULL值。

        2.4 关系代数

        2.4.1 关系代数概述

        传统的关系代数操作主要有以下四类:(1) 关系操作并、交、差。 (2) 选择操作,除去某些列的操作。(3) 组合操作,包括笛卡儿积运算以及连接运算。 (4) 重命名操作。通常把关系代数表达式称为查询。

        2.4.2 关系上的集合操作

        最常用的集合操作为并 R U S 、交 R ∩ S、差 R - S。这三个运算比较简单,即是把关系实例当作集合来进行运算,不在此过多说明。需要注意的是R和S必须具有同样的属性集合,且各个属性的类型也必须匹配。

        2.4.3 投影π

        投影用来从关系R中生成只含部分列的新关系。

        表达式πA1A2,...An(R)表示一个关系,它只包含关系R的属性A1,A2,....,An所代表的列,即新关系可以表示为:S(A1,A2,....An)。

        2.4.4 选择σ

        选择用于产生一个只包含R部分元组的子集合,新关系的元组必须满足某个基于R属性的条件C。选择用表达式σc(R)表示。[σ音为sigma]。例如对于一个成绩单的表,可以从中选择成绩在90分以上的学生:σgrade>90(R)。

        2.4.5 笛卡儿积χ

        关系R(Ai) X S(Bi)是一个有序对的集合,有序对的第一个元素为R中的任意元组Ai,有序对的第二个元素为S中的任意元组Bi。积的元组个数为两个关系的元组个数的积。

        积的关系模式是R和S关系模式的并,如果二者有相同的属性,需要把一个关系中相应的属性名更改成不同的名称。当然为了清楚期间,若属性A同时是R和S的属性,则在积中可以分别记为R.A和S.A。

        2.4.6 自然连接⋈

        关系也可以按照条件来进行连接。若R和S具有共同属性A1,A2,...,An,r和s分别为两个关系的元组,若当且仅当r和s在公共属性A1,A2,...,An上相同时,元组r和s方可进行连接,称为自然连接,记作R⋈S。例如对于关系Student(id,name)与成绩Grade(id,grade),为了寻找学生姓名和成绩,就可以将Student和Grade进行基于id的自然连接。

        在连接中,若一个元组不能和另外关系中的任何元组连接配对的话,称其为悬浮元组。

        2.4.7 θ连接

        θ连接是自然连接的扩展,其不必基于相等的属性,而可以基础任意条件C来进行连接,记作R⋈cS。可以通过先构造RXS的结果,再结果中寻找满足条件C的元组。例如对于关系Student(id,name,age)和关系Teacher(id,name,age),我们希望找到比老师年龄还大的学生就可以,采用R⋈s.age>t.ageS来实现。

        2.4.8 重命名ρ

        ρs(R)表示把关系重命名为S,若在改名的同时还老需要重命名列,则表示为ρs(A1,A2,...,An)(R),即R的各列名称为Ai。

        2.4.9 操作之间的关系

        上面介绍的一些操作,可以被其他操作组合来进行等价表示。其中的6个操作,并,差,选择,投影,积,重命名构成一个独立的集合,每个操作都不能被集合中其他操作来实现。

        2.5 关系上的约束

        2.5.1 约束表示

        前提是R和S是关系。若R=∅表示R中没有元组。R⊆S表示R的元组均在S中出现。

        2.5.2 引用完整性约束

        关系R中的属性A,若其引用了关系S的属性B,则R的任一元组在属性A的分量,必然应该包括在关系S的元组在属性B的分量中,表示为πA(R) ⊆πB(S) 。

        2.5.3  键约束

        关系R(A1,A2,...,An),假设A1为关系的键属性,则对于A1相同两个元组,其A2-An也必然相同。记S为R的重命名关系,则σR.A1=S.A1 and R.ai != S.ai(R*S) = ∅。

        2.5.4 其他约束举例

        以关系的属性的取值约束为例,规定R(A)的A只能取[0-5],则有σA<0 and A>5(R) = ∅。

        

        3 基于包的代数与逻辑查询语言

        3.1 包上的关系代数操作

        商业DBMS实现的关系都是基于包而不集合。把关系看作包而不是集合,可以使一些关系操作实现效率更好。例如包的并可以简单组合两个关系,而不需要排重。对于投影操作仅需要选择所在列的数据即可,也不需要排重。

        3.1.1 包的并、交、差

        假定R和S是包,其中元r在R中出现n次,在S中出现m次,则有

        包R U S中,元组 r 出现n+m次

        包R ∩ S中,元组 r 出现min(m,n)次,

        包R-S中,元组 r 出现max(0,n-m)次

        3.1.2 包的投影操作

        在包的投影操作过程中,如果产生了多个同样的元组,则重复不会被从包投影结果中消除。

        3.1.3 包上的选择操作

        在包上选择操作时,结果中也不去掉重复元组。

        3.1.4 包的笛卡儿积

        一个关系中的每个元组跟另外一个关系中的每个元组配对,而不问这个元是不是重复出现。

        3.1.5 包的连接

        首先对比两个关系中的元组,看是否可配对,如果可以,则配对起来的元组就是结果中的一员。结果中不需要消除重复元组。        

        3.2 扩展的关系代数操作

        3.2.1 消除重复

         δ(R)表示返回一个没有重复元组的关系R。这个算子把包转换为集合。

        3.2.2 聚集操作符

        聚集操作符用来汇总关系某一列中出现的值。标准算子有以下几个

        1) SUM 产生一列的和

        2) AVG 产生一列的均值

        3) MIN&MAX 分别产生一列中最小值和最大值

        4) COUNT 产生一列中的值的数目,包括重复的元组。

        3.2.3 分组操作符

        有时人们不仅能对列来计算聚集,还需要按某个或多个属性值来分组,然后考虑分组内元的聚集操作。

        这里定义分组算子γL(R),其返回的关系的计算过程是:先把关系R的元组分组。每一组由L中分组属性为特定值的所有元组。然后对于每一组产生一个新元组,这个元组的内容为一个分组属性值,本组所有元组聚集操作的结果。

        δ操作是γ操作的冗余。去重相当在每一列上进行分组。

        3.2.4 扩展的投影操作

        前面我们看到投影操作πA1A2,...An(R),扩展这个操作,使它支持在元的组成分量上或选择分量上的计算。投影列表可以是以下所列元素之一:R的属性,x->y的重命名,E->z,其中E是一个涉及R的属性、常量、算术运算符或串运算符的表达式。z是命名后的新名字。

        3.2.5 排序操作符

        表达式τL(R),表示按L排序的关系R本身。L可以是一个属性列表,R的元组先按A1的值排序,对于A1属性相等的再按A2排序,依此类推。

        3.2.6 外连接

        外连接是连接的一个变种。其先执行自然连接,然后再把来自R或者S中的悬浮元组加入其中。加入的元组在对应属性上若不存在分量,则用NULL表示。

        自然外连接有几种不同变体,左外自然连接只加入械变量R的悬浮元组。右外连接只把右变量S的悬浮元组加入结果。

        针对θ连接也有对应的外θ连接,左外θ连接,右外θ连接。

        3.3 Datalog逻辑查询语言

        关系运算还可以基于Datalog逻辑查询语言,暂时不在此说明。

        3.4 关系代数与Datalog

        同上,略


         参考文献

         维基百科-关系代数 http://zh.wikipedia.org/wiki/%E5%85%B3%E7%B3%BB%E4%BB%A3%E6%95%B0_%28%E6%95%B0%E6%8D%AE%E5%BA%93%29#.E8.87.AA.E7.84.B6.E8.BF.9E.E6.8E.A5_.28.E2.8B.88.29

         数据库系统基础教程 原书第三版  Jeffrey D.Ullman , Jenifer Widom著  机械工作出版社

数据库关系代数表达式学习  关系代数是关系数据库系统查询语言的理论基础   一、关系代数的9种操作:       关系代数中包括了:并、交、差、乘、选择、投影、联接、除、自然联接等操作。 阅读详情

相关推荐

数据库系统概论习题 关系数据库 关系数据库(关系代数表达式)

关系数据库 一单项选择题 试题1 关系模型中,一个码() 以上都不是 可以由多个任意属性组成 由一个或多个属性组成,其值能够唯一标识关系中一个元组 至多由一个属性组成 [参考答案] 由一个或多个属性组成,其值能够唯一标识关系中一个元组 试题2 有两个关系A(S,SN,D)和B(D,CN,NM),S是A的主码,A中的属性D与B中的主码D相对应,则D是关系A的()。 外码 主码 主属性 候选码 [参考答案] 外码 试题3 关系模式的任何属性() 以上都不是 ...

Move on 6271

数据库期末总结笔记( 零基础 )

一、关系代数的五个基本操作 1.选择(δ):把满足条件的基本元组找出来(元组对应行) 分析:题目中出现找条件一般就用选择(学号在一定范围,性别男还是女,年龄在什么范围…) 例:①查询信息系(IS系)全体学生 δ sdept=‘IS’(Student) ②查询年龄小于20的学生 δ Sage<20(Student) 2.投影(Π):把不需要的列去掉(属性对应列,对某一列或几列属性进行查询) 例:①查询学生的姓名和所在的系 分析:姓名,所在系是两个属性 Π Sname,Sdept(Student)

gl620321的博客 1万+

4.3 MySQL的关系代数全解,一篇文章给你讲透(关系代数的基本操作五种、交,自然连接、实例操作9个)

外连接操作用于包括左关系、右关系或两个关系中的所有元组,即使它们在另一个关系中没有匹配的元组。:自然连接操作用于基于两个关系中有相同名称的属性,将这些属性的值相等的元组连接起来。:θ连接操作用于基于两个关系中满足特定条件的属性,将这些属性满足条件的元组连接起来。关系代数的组合操作是在基本操作的基础上进行的,它们可以结合使用来实现更复杂的查询。表,即使某些学生没有对应的成绩记录,也列出所有学生的名字和他们的课程ID及成绩。:从选修数学的学生中去掉也选修了物理的学生,找出只选修了数学的学生。

Argonaut_的博客 2542

数据库系统概念-关系代数

关系代数

x13262608581的博客 2145

【从零开始学习计算机科学】数据库系统(二)关系数据库 与 关系代数

DDL 包括 CREATE、DROP、ALTER 等动作。在数据库中使用 CREATE 来创建新表,DROP 来删除表,ALTER 负责数据库对象的修改。关系模型是建立在集合代数的基础上的。关系的每个分量必须是不可分割的数据项。

AI科研社 1168

【数据库系统原理】 第三章 关系代数与关系数据库范式理论★★★★

关系代数与范式理论

Chen59_2328的博客 861

关系代数习题及答案

关系代数运算是数据库的基础,首先提供一个神仙网站:关系代数,这个网站同时提供关系代数查询和SQL语句查询,可以检查关系代数的正确性,以及把SQL语句转为关系代数运算式。网站还有使用教程,简直不能太贴心! 但是他不支持的部分SQL语句,这些都在help中有详细说明。 help中说该网站支持Count等集合查询,但我至今没搞懂使用方法。。。我知道后会更新,如果有小伙伴知道欢迎留言! 进入正题 首先...

Edith的博客 2万+

关系数据库系统(数据库原理)

关系数据库系统(数据库原理) 目录 一、关系数据结构 二、关系的完整性 三、关系运算 四、关系的规范化 一、关系数据结构 1、关系的定义和性质 (1)、 关系的数学定义: 域:一组有相同数据类型的值得集合 笛卡尔积:设任意的N个域D1,D2,…,Dn。定义D1,D2,…,Dn的笛卡尔积为:D1*D2*****Dn={(d1,d2,…,dn)|di属于Di,i=1,2,…,n}。例如(D1的取值类...

小人物 8405

【关系模型】扩展关系代数运算

来试试几道例题:(1)查询选修了1号课程的学生学号、姓名及成绩该表达式会先进行自然连接,后是查询,再是投影运算注:SC是学生选课表,Student是学生表(2)查询选修了1号课程的学生学号、姓名及成绩可以有两种表示:但是下面的会比上面的更加高效,因为在进行自然连接之前先通过查询减少了参与连接的元组数。

lin_miao_2023的博客 875

Vue3多级路由缓存失效的深度解析与实战解决方案

本文深度解析了Vue3项目中多级路由下keep-alive缓存失效的根本原因,并提供了三种实战解决方案:通过路由扁平化根治问题、利用状态管理精细模拟缓存效果,以及借助keep-alive-vue3插件快速修复。文章旨在帮助开发者彻底理解Vue Router与keep-alive的协作机制,从而根据项目情况选择最佳策略,有效解决页面状态丢失的难题。

weixin_29015801的博客 285

SAP采购申请详述;以及采购计划协议/交货计划行

SAP采购申请详述;以及采购计划协议/交货计划行

saplakes的博客 4341

数据库系统之:关系代数详解-超详细

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 数据库系统之:关系代数前言一、关系代数是什么?二、关系代数1.关系代数--并、交、差2.关系代数--笛卡尔积、投影、选择4.关系代数--选择扩展:自然连接和等值连接的联系和区别等值连接自然连接总结 前言 关系代数是属于软件设计师考试中第三单元数据库系统中的一个高频考点,常考的考试场景有: 1、给定代数式,求取计算结果或其结果的特性,找到等价表达式。 2、常考的关系代数是笛卡尔积、选择、投影组合与自然连接的等价表示。 3、SQL语句 S

JavaEEKing的博客 5万+

SAP SD POD 配置与 VLPOD 操作:3步解决发货10件开票7件的业务场景

本文详细解析了SAP SD POD功能在解决发货与开票数量差异中的应用,通过3步配置法实现精准匹配。重点介绍了POD核心逻辑、关键配置步骤及VLPOD操作技巧,帮助企业高效处理易损品运输等复杂场景,提升供应链管理效率。

weixin_30613343的博客 394

【数据库系统概论复习】关系数据库与关系代数笔记

*DBMS 数据库管理系统 ** ,数据库要放硬盘,好麻烦,牛的程序员给我们做了一个软件, 让我们可以方便的建库, 建表,做权限控制等,这就是DBMS。(6)统计每门课程的学生选修人数(超过10人的课程才统计),要求输出课程号和选修人数,查询结果按选修人数降序排列,若人数相同,则按课程号升序排列。参与表的主码为职工号和编号,职工号为外码,被参照表为职工表,参照属性为职工号,编号为外码,被参照表为社会团体表,参照属性为编号。L中有属性就分组,如果只有聚合函数,就是简单的聚合函数,不会分组,如题11。

weixin_73588491的博客 1215

给STM32供电,别只接VDD和GND!VBAT、VDDA这些引脚不接会怎样?

本文深入解析STM32电源设计中VBAT与VDDA引脚的关键作用,揭示仅连接VDD和GND可能导致的ADC精度下降、RTC功能异常等问题。通过实测数据对比不同连接方案,提供包括滤波电路设计、PCB布局布线和双电源自动切换在内的实用解决方案,帮助开发者优化系统稳定性与性能。

weixin_30521161的博客 623

如何使你的直流电机闭环?(PID讲解)

看了看很多大佬写的PID讲解很全面也很复杂,实在是不适合很多萌新入坑,所以想按自己的理解写一篇通俗易懂的PID算法讲解

a2001444的博客 1万+

数据库系统概论——关系代数详解

关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式,它是利用对关系的运算来表达查询的。任何运算都是将一定的运算符作用于一定的运算对象上,得到预期的运算结果。关系代数的运算对象是关系,运算结果亦为关系。集合运算符将关系看成元组的集合从关系的“水平”方向即行的角度来进行运算专门的关系运算符不仅涉及行而且涉及列算术比较符辅助专门的关系运算符进行操作逻辑运算符辅助专门的关系运算符进行操作。

ai领域探索者,欢迎一起交流,目前从事具身智能行业。 2万+

LEF 5.8 Language Reference学习笔记

您可以在一个 LEF 文件中定义所有元件库信息,但这样会产生一个复杂且难以管理的大文件。相反,您可以将信息分为两个文件,一个是 "technology "LEF 文件,另一个是 "cell library "LEF 文件。

yajuan的专栏 4100

2.2 《数据库系统概论》之关系操作、关系完整性、关系代数

文章目录0.思维导图1.关系操作(1)基本关系操作(2)关系数据库语言的分类2.关系的完整性(1)关系的三类完整性约束(2) 实体完整性(Entity Integrity)(3)参照完整性❶ 关系间的引用❷ 外码(Foreign Key)❸ 参照完整性规则(4)用户定义的完整性3.关系代数(1)关系代数运算符(2)传统的集合运算① 并(Union)② 差(Difference)③ 交(Inters...

BitHachi 3万+

KVM — 与 QEMU 和 Libvirt 的关系

目录目录 前言 KVM QEMU KVM 与 QEMU qemu-kvm Libvirt Libvirt 在 OpenStack 中的应用前言如果是刚开始接触虚拟机技术的话, 对上述的概念肯定会有所混淆, 傻傻的分不清. 尤其在看虚拟化技术文档时导致理解能力下降, 所以在开始学习虚拟化技术之前对这些概念有一个整体的认识和清晰的理解, 就显得很有必要了.KVMKVM(Kernel-basedVirtu

烟云的计算 5736

块存储:AIO的直接写流程注释

提交io流程中aio_write之前函数的注释,可参考“块存储:AIO的直接读流程注释”。

yiyeguzhou100的专栏 1333

数据库系统概念

目录 第一章、引言 1.1 文件管理系统坏处 1.2 数据视图 1.3 数据模型 1.4 数据库语言 第二章、关系模型介绍 2.1 关系数据库的结构 2.2 数据库模式 2.3 码 第三章、SQL 3.1 SQL 查询语言概览 3.2 SQL数据定义 3.2.1基本类型 3.2.2基本模式定义 3.3 sql查询的基本结构 3.3.1 单关系查询 3.3.2 多...

王文萱的博客 2万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

关系代数(关系代数的五个基本操作)

五种基本关系代数运算是? 五种基本关系代数运算是并、差、投影、交、选择、投影。 1、并:设有两个关系R和S,它们具有相同的结构。R和S的并是由属于R或属于S的元组组成的集合,运算符为∪。记为T=R∪S。 2、差:R和S的差是由属于R但不属于S的元组组成的集合,运算符为- [1] 。记为T=R-S。 3、交:R和S...

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 2万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

数据库基础---关系数据库简介和关系代数8种运算方法及例题

关系数据库关系数据模型关系是一个数学概念。 当把关系的概念引入到数据库系统作为数据模型的数据结构时,既有所限定和也有所扩充。 关系的数学定义例: 课程={离散,C语言…..},学生={张三,李四…..} 笛卡儿积(cartesian product):设D1、…、Dn是n个域。D1、…、Dn上的笛卡尔乘积定义为集合 D1×…×Dn ={ (d1 , …, dn ) | di ∈Di,1≤i≤n

翾的博客 7万+

数据库系统理论知识 (一)

这里整理一些相关的理论知识,便于日后复习 数据库系统导论 1.数据是对客观事物的一种符号表示,是数据库中存取的基本对象. 2.数据库是长期存储在计算机内的,有组织可共享的数据集合. 3.数据定义语言:DDL 数据库管理系统:DBMS 数据操纵语言:DML 4.数据库系统:DBS 由计算机硬件,操作系统,数据库管理系统,数据库,应用程序,用户以及数据库管理员组成. 5.DBS的核心为DBMS,...

Hibary 4367

【数据库系统概论】—— 关系数据库

本篇文章主要对于数据库系统概述中关系数据库/关系代数一章的相关知识进行了总结

2401_86777036的博客 3091
上一篇: 《程序员的职业素养》读后
下一篇: 数据库系统基础教程二:关系数据库设计理论
zzulp
博客等级 码龄19年 464粉丝 176原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值