数据库系统概论第四版第3章的关系数据库标准语言SQL1-课件

PPT
  • 阅读 109 次
  • 下载 0 次
  • 页数 82 页
  • 大小 431.523 KB
  • 2022-12-05 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
数据库系统概论第四版第3章的关系数据库标准语言SQL1-课件
可在后台配置第一页与第二页中间广告代码
数据库系统概论第四版第3章的关系数据库标准语言SQL1-课件
可在后台配置第二页与第三页中间广告代码
数据库系统概论第四版第3章的关系数据库标准语言SQL1-课件
可在后台配置第三页与第四页中间广告代码
数据库系统概论第四版第3章的关系数据库标准语言SQL1-课件
数据库系统概论第四版第3章的关系数据库标准语言SQL1-课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 82
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】数据库系统概论第四版第3章的关系数据库标准语言SQL1-课件.ppt,共(82)页,431.523 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-92475.html

以下为本文档部分文字说明:

2022/12/5AnIntroductiontoDatabaseSystem洛阳理工学院计算机与信息工程系数据库系统概论AnIntroductiontoDatabaseSystem第三章关系数据库标

准语言SQL2022/12/5AnIntroductiontoDatabaseSystem第三章关系数据库标准语言SQL3.1SQL概述3.2学生-课程数据库3.3数据定义3.4数据查询3.5数据更新3.

6视图3.6小结2022/12/5AnIntroductiontoDatabaseSystem3.1SQL概述SQL的特点1.综合统一2.高度非过程化3.面向集合的操作方式4.以同一种语法结构提供两种使用方法5.语言简洁,易学易用2022/12/5AnIntroductionto

DatabaseSystem5.语言简捷,易学易用表3.1SQL语言的动词SQL功能动词数据定义CREATE,DROP,ALTER数据查询SELECT数据操纵INSERT,UPDATEDELETE数据控制G

RANT,REVOKE2022/12/53.2学生-课程数据库由三个表构成:1学生表Student(Sno,Sname,Ssex,Sage,Sdept)2课程表Course(Cno,Cname,Cpno,Ccredit)3学生选课表

SC(Sno,Cno,Grade)2022/12/5AnIntroductiontoDatabaseSystem第三章关系数据库标准语言SQL3.1SQL概述3.2学生-课程数据库3.3数据定义3.4数据查询3.5数据更新3.6视图3.6小结2022/12/5AnIntrod

uctiontoDatabaseSystem3.3数据定义表3.2SQL的数据定义语句操作方式操作对象创建删除修改表CREATETABLEDROPTABLEALTERTABLE视图CREATEVIEWDROPVIEW索引CREATEINDEXDRO

PINDEX2022/12/5Createdatabasedata_nameOn(filename=“”size=)Logon(Filename=“”size=)AnIntroductiontoDatabase

System2022/12/5AnIntroductiontoDatabaseSystem3.3.1定义语句格式CREATETABLE<表名>(<列名><数据类型>[<列级完整性约束条件>][,<列名><数据类型>[<列级完整性约束条件>]]…[,<表级完整

性约束条件>]);<表名>:所要定义的基本表的名字<列名>:组成该表的各个属性(列)<列级完整性约束条件>:涉及相应属性列的完整性约束条件<表级完整性约束条件>:涉及一个或多个属性列的完整性约束条件2022/12/5AnIntroductiontoDatabas

eSystem例题[例1]建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成。其中学号不能为空,值是唯一的,并且姓名取值也唯一。CREATETABLEStudent(SnoCHAR(5)NOTNU

LLUNIQUE,SnameCHAR(20)UNIQUE,SsexCHAR(1),SageINT,SdeptCHAR(15));2022/12/5AnIntroductiontoDatabaseSystem定义基

本表(续)常用完整性约束主码约束:PRIMARYKEY唯一性约束:UNIQUE非空值约束:NOTNULL参照完整性约束PRIMARYKEY与UNIQUE的区别?2022/12/5AnIntroducti

ontoDatabaseSystem例题(续)[例2]建立一个“学生选课”表SC,它由学号Sno、课程号Cno,修课成绩Grade组成,其中(Sno,Cno)为主码。CREATETABLESC(SnoCHAR(5),CnoCHAR(

3),Gradeint,Primarykey(Sno,Cno));2022/12/5AnIntroductiontoDatabaseSystem例题(续)SnoSnameSsexSageSdept↑↑↑↑↑字符型字符型字符型整数字符型长度为5长度为20长度

为1长度为15不能为空值2022/12/5AnIntroductiontoDatabaseSystem三、删除基本表DROPTABLE<表名>;基本表删除数据、表上的索引都删除表上的视图往往仍然保留,

但无法引用删除基本表时,系统会从数据字典中删去有关该基本表及其索引的描述(标准中没有,认为表建立后就永久存在)2022/12/5AnIntroductiontoDatabaseSystem例题[例5]删除Student表DROPTABLEStudent;2022/12/5An

IntroductiontoDatabaseSystem二、修改基本表ALTERTABLE<表名>[ADD<新列名><数据类型>[完整性约束]][DROP<完整性约束名>][MODIFY<列名><数据类型

>];<表名>:要修改的基本表ADD子句:增加新列和新的完整性约束条件DROP子句:删除指定的完整性约束条件MODIFY子句:用于修改列名和数据类型2022/12/5AnIntroductiontoDatabaseSystem例题[例2]向Student表增加“入学时间”列,其

数据类型为日期型。ALTERTABLEStudentADDScomeDATE;不论基本表中原来是否已有数据,新增加的列一律为空值。2022/12/5AnIntroductiontoDatabaseSyste

m语句格式(续)删除属性列直接/间接删除把表中要保留的列及其内容复制到一个新表中删除原表再将新表重命名为原表名直接删除属性列:(新)例:ALTERTABLEStudentDropScome;2022/12/5AnI

ntroductiontoDatabaseSystem[例3]将年龄的数据类型改为半字长整数。ALTERTABLEStudentMODIFYSageSMALLINT;注:修改原有的列定义有可能会破坏已有数据2022/12/5AnIntroductiontoDatabaseSyste

m例题[例4]删除学生姓名必须取唯一值的约束。ALTERTABLEStudentDROPUNIQUE(Sname);2022/12/5AnIntroductiontoDatabaseSystem3.3.2建立与删除索引建立索引是加快查询速度的

有效手段建立索引DBA或表的属主(即建立表的人)根据需要建立有些DBMS自动建立以下列上的索引PRIMARYKEYUNIQUE维护索引DBMS自动完成使用索引DBMS自动选择是否使用索引以及使用哪些索引2022/12/5

AnIntroductiontoDatabaseSystem一、建立索引语句格式CREATE[UNIQUE][CLUSTER]INDEX<索引名>ON<表名>(<列名>[<次序>][,<列名>[<次序>]]

…);用<表名>指定要建索引的基本表名字索引可以建立在该表的一列或多列上,各列名之间用逗号分隔用<次序>指定索引值的排列次序,升序:ASC,降序:DESC。缺省值:ASCUNIQUE表明此索引的每

一个索引值只对应唯一的数据记录CLUSTER表示要建立的索引是聚簇索引2022/12/5AnIntroductiontoDatabaseSystem例题[例6]为学生-课程数据库中的Student,Course,SC三个表建立索引。其中Student表按学

号升序建唯一索引,Course表按课程号升序建唯一索引,SC表按学号升序和课程号降序建唯一索引。CREATEUNIQUEINDEXStusnoONStudent(Sno);CREATEUNIQUEINDEXCoucnoONCourse(Cno);CREATEUNIQUEINDEXS

CnoONSC(SnoASC,CnoDESC);2022/12/5AnIntroductiontoDatabaseSystem建立索引(续)唯一值索引对于已含重复值的属性列不能建UNIQUE索引对某个列建立UNIQUE索引后,插入新记录时DBMS会

自动检查新记录在该列上是否取了重复值。这相当于增加了一个UNIQUE约束2022/12/5AnIntroductiontoDatabaseSystem建立索引(续)聚簇索引建立聚簇索引后,基表中数据也需要按指定的聚簇属性值

的升序或降序存放。也即聚簇索引的索引项顺序与表中记录的物理顺序一致例:CREATECLUSTERINDEXStusnameONStudent(Sname);在Student表的Sname(姓名)列上建立一个聚簇索引,而且Stu

dent表中的记录将按照Sname值的升序存放2022/12/5AnIntroductiontoDatabaseSystem建立索引(续)在一个基本表上最多只能建立一个聚簇索引聚簇索引的用途:对于某些类型的查询,可以

提高查询效率聚簇索引的适用范围很少对基表进行增删操作很少对其中的变长列进行修改操作2022/12/5AnIntroductiontoDatabaseSystem二、删除索引DROPINDEX<索引名>;删除索引时,系统会从数据字典中删去有关该索引的描述。[

例7]删除Student表的Stusname索引。DROPINDEXStusname;2022/12/5AnIntroductiontoDatabaseSystem3.4查询3.4.1概述3.4.2单表查询3.4.3连接查询3.4.4嵌套查询3.4.5集合查询3.4.6小结2022

/12/5AnIntroductiontoDatabaseSystem3.4.1概述语句格式SELECT[ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]…FROM<表名或视图名>[,<表名或视图

名>]…[WHERE<条件表达式>][GROUPBY<列名1>[HAVING<条件表达式>]][ORDERBY<列名2>[ASC|DESC]];2022/12/5AnIntroductiontoDatab

aseSystem语句格式SELECT子句:指定要显示的属性列FROM子句:指定查询对象(基本表或视图)WHERE子句:指定查询条件GROUPBY子句:对查询结果按指定列的值分组,该属性列值相等的元组为一个组。通常会在每组中作用集函数。HAVING短语:筛选出只有

满足指定条件的组ORDERBY子句:对查询结果表按指定列值的升序或降序排序2022/12/5AnIntroductiontoDatabaseSystem示例数据库学生-课程数据库学生表:Student(Sno,Sname,Ssex,Sage,Sdept)课程表:

Course(Cno,Cname,Cpno,Ccredit)学生选课表:SC(Sno,Cno,Grade)2022/12/5AnIntroductiontoDatabaseSystem3.4查询3.4

.1概述3.4.2单表查询3.4.3连接查询3.4.4嵌套查询3.4.5集合查询3.4.6小结2022/12/5AnIntroductiontoDatabaseSystem3.4.2单表查询查询仅涉及一个表

,是一种最简单的查询操作一、选择表中的若干列二、选择表中的若干元组三、对查询结果排序四、使用集函数五、对查询结果分组2022/12/5AnIntroductiontoDatabaseSystem查询指定列[例1]查询全体学生的学号与姓名。SELECTSno,SnameF

ROMStudent;[例2]查询全体学生的姓名、学号、所在系。SELECTSname,Sno,SdeptFROMStudent;2022/12/5AnIntroductiontoDatabaseSystem查询全部列[例3]查询全体学生的详细记录。SELECTSno,Sname,Ssex

,Sage,SdeptFROMStudent;或SELECT*FROMStudent;2022/12/5AnIntroductiontoDatabaseSystem3.查询经过计算的值SELECT子句的<目标列表达式>

为表达式算术表达式字符串常量函数列别名等2022/12/5AnIntroductiontoDatabaseSystem3.查询经过计算的值[例4]查全体学生的姓名及其出生年份。SELECTSname

,2000-SageFROMStudent;输出结果:Sname2000-Sage----------------------李勇1976刘晨1977王名1978张立19782022/12/5AnIntroductiontoDatabaseSystem3.查询经过计算的值

[例5]查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名。SELECTSname,'YearofBirth:',2000-Sage,ISLOWER(Sdept)FROMStudent;2022/12/5AnIntroductiontoDat

abaseSystem例题(续)输出结果:Sname'YearofBirth:'2000-SageISLOWER(Sdept)----------------------------------------------李勇Yea

rofBirth:1976cs刘晨YearofBirth:1977is王名YearofBirth:1978ma张立YearofBirth:1977is2022/12/5AnIntroductiontoDatabaseSystem[例]使用列别名改变查询结果的列标题SELECTSna

meNAME,'YearofBirth:’BIRTH,2000-SageBIRTHDAY,ISLOWER(Sdept)DEPARTMENTFROMStudent;输出结果:NAMEBIRTHBIRTHDAYDEPARTMENT----------------

--------------------------------------李勇YearofBirth:1976cs刘晨YearofBirth:1977is王名YearofBirth:1978ma张立Yearof

Birth:1977is2022/12/5AnIntroductiontoDatabaseSystem二、选择表中的若干元组消除取值重复的行查询满足条件的元组2022/12/5AnIntroductiontoDatabaseSystem1.消

除取值重复的行在SELECT子句中使用DISTINCT短语假设SC表中有下列数据SnoCnoGrade---------------------95001192950012859500138895002290950023802022/12/5

AnIntroductiontoDatabaseSystemALL与DISTINCT[例6]查询选修了课程的学生学号。(1)SELECTSnoFROMSC;或(默认ALL)SELECTALLSnoFROMSC;结果:Sno-------9500

1950019500195002950022022/12/5AnIntroductiontoDatabaseSystem例题(续)(2)SELECTDISTINCTSnoFROMSC;结果:Sno-------95001950022022/12/5AnIntroductiontoDa

tabaseSystem例题(续)注意DISTINCT短语的作用范围是所有目标列例:查询选修课程的各种成绩错误的写法SELECTDISTINCTCno,DISTINCTGradeFROMSC;正确的写法SELECTDISTIN

CTCno,GradeFROMSC;2022/12/5AnIntroductiontoDatabaseSystem2.查询满足条件的元组表3.3常用的查询条件查询条件谓词比较=,>,<,>=,<=,!=,<>,!>,!<;NOT+上述比较运算符确定范围BETWEENA

ND,NOTBETWEENAND确定集合IN,NOTIN字符匹配LIKE,NOTLIKE空值ISNULL,ISNOTNULL多重条件AND,ORWHERE子句常用的查询条件2022/12/5AnIntroductiontoDatab

aseSystem(1)比较大小在WHERE子句的<比较条件>中使用比较运算符=,>,<,>=,<=,!=或<>,!>,!<,逻辑运算符NOT+比较运算符[例8]查询所有年龄在20岁以下的学生姓名及其年龄。SELECTSname,SageFROMStudentWH

ERESage<20;或SELECTSname,SageFROMStudentWHERENOTSage>=20;2022/12/5AnIntroductiontoDatabaseSystem(2)确定范

围使用谓词BETWEEN…AND…NOTBETWEEN…AND…[例10]查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄。SELECTSname,Sdept,SageFROMStudentWHERESageBETWEEN20AND23;2022/1

2/5AnIntroductiontoDatabaseSystem例题(续)[例11]查询年龄不在20~23岁之间的学生姓名、系别和年龄。SELECTSname,Sdept,SageFROMStudentWHERESageNOTBETWEEN20AN

D23;2022/12/5AnIntroductiontoDatabaseSystem(3)确定集合使用谓词IN<值表>,NOTIN<值表><值表>:用逗号分隔的一组取值[例12]查询信息系(IS)、数学系(MA)和计算机

科学系(CS)学生的姓名和性别。SELECTSname,SsexFROMStudentWHERESdeptIN('IS','MA','CS');2022/12/5AnIntroductiontoDatabaseSystem(3)确定集合[例13]查询既不是信息系、数学系,也

不是计算机科学系的学生的姓名和性别。SELECTSname,SsexFROMStudentWHERESdeptNOTIN('IS','MA','CS');2022/12/5AnIntroductiontoDat

abaseSystem(4)字符串匹配[NOT]LIKE„<匹配串>‟[ESCAPE„<换码字符>‟]<匹配串>:指定匹配模板匹配模板:固定字符串或含通配符的字符串当匹配模板为固定字符串时,可以用=运算符取代LIKE谓词用!=或<>运算符取代NOTLIKE谓词2022/12/5AnIntrodu

ctiontoDatabaseSystem通配符%(百分号)代表任意长度(长度可以为0)的字符串例:a%b表示以a开头,以b结尾的任意长度的字符串。如acb,addgb,ab等都满足该匹配串_(下横线)

代表任意单个字符例:a_b表示以a开头,以b结尾的长度为3的任意字符串。如acb,afb等都满足该匹配串2022/12/5AnIntroductiontoDatabaseSystemESCAPE短语:当用户要查询的字符串本身就含有%或_时,要使用ESCAPE'<换码字符

>'短语对通配符进行转义。2022/12/5AnIntroductiontoDatabaseSystem例题1)匹配模板为固定字符串[例14]查询学号为95001的学生的详细情况。SELECT*FROMStudentWHERESnoLIKE'95001';等

价于:SELECT*FROMStudentWHERESno='95001';2022/12/5AnIntroductiontoDatabaseSystem例题(续)2)匹配模板为含通配符的字符串[例15]查询所有姓刘学生的姓名、学号和性别。SELECTSname

,Sno,SsexFROMStudentWHERESnameLIKE„刘%‟;2022/12/5AnIntroductiontoDatabaseSystem例题(续)匹配模板为含通配符的字符串(续)[例16]查询姓"欧阳"且全名

为三个汉字的学生的姓名。SELECTSnameFROMStudentWHERESnameLIKE'欧阳__';2022/12/5AnIntroductiontoDatabaseSystem例题(续)匹配模板为含通配符的字符串(续)[例17]查询名字中第2个字为"阳"字的学生的姓名

和学号。SELECTSname,SnoFROMStudentWHERESnameLIKE'__阳%';2022/12/5AnIntroductiontoDatabaseSystem例题(续)匹配模板为含通配符的字符串

(续)[例18]查询所有不姓刘的学生姓名。SELECTSname,Sno,SsexFROMStudentWHERESnameNOTLIKE'刘%';2022/12/5AnIntroductiontoDatabaseSystem例题(续)3)使用换码字符将

通配符转义为普通字符[例19]查询DB_Design课程的课程号和学分。SELECTCno,CcreditFROMCourseWHERECnameLIKE'DB\_Design'ESCAPE'\'2022/12/5AnIntroduct

iontoDatabaseSystem例题(续)使用换码字符将通配符转义为普通字符(续)[例20]查询以"DB_"开头,且倒数第3个字符为i的课程的详细情况。SELECT*FROMCourseWHERECnameLIKE'DB\_%i__'ESCAPE'\';2022/12/5AnIntrodu

ctiontoDatabaseSystem(5)涉及空值的查询使用谓词ISNULL或ISNOTNULL“ISNULL”不能用“=NULL”代替[例21]某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。查询缺少

成绩的学生的学号和相应的课程号。SELECTSno,CnoFROMSCWHEREGradeISNULL;2022/12/5AnIntroductiontoDatabaseSystem例题(续)[例22]查所有有成绩的学生学号和课程号。SELECTSno

,CnoFROMSCWHEREGradeISNOTNULL;2022/12/5AnIntroductiontoDatabaseSystem(6)多重条件查询用逻辑运算符AND和OR来联结多个查询条件AND的优先级高于OR可以用

括号改变优先级可用来实现多种其他谓词[NOT]IN[NOT]BETWEEN…AND…2022/12/5AnIntroductiontoDatabaseSystem例题[例23]查询计算机系年龄在20岁以下的学生姓名。SELECTSnam

eFROMStudentWHERESdept='CS'ANDSage<20;2022/12/5AnIntroductiontoDatabaseSystem改写[例12][例12]查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。SELEC

TSname,SsexFROMStudentWHERESdeptIN('IS','MA','CS')可改写为:SELECTSname,SsexFROMStudentWHERESdept='IS'ORSdept='MA'ORSdept='CS';2022/12/5AnIntroduction

toDatabaseSystem改写[例10][例10]查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄。SELECTSname,Sdept,SageFROMStudentWHERESa

geBETWEEN20AND23;可改写为:SELECTSname,Sdept,SageFROMStudentWHERESage>=20ANDSage<=23;2022/12/5AnIntroductiontoDatabaseSystem三、对查询结果排序使用ORDERB

Y子句可以按一个或多个属性列排序升序:ASC;降序:DESC;缺省值为升序当排序列含空值时ASC:排序列为空值的元组最后显示DESC:排序列为空值的元组最先显示2022/12/5AnIntroductiontoDatabaseSyste

m对查询结果排序(续)[例24]查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。SELECTSno,GradeFROMSCWHERECno='3'ORDERBYGradeDESC;2022/12/5AnIntroducti

ontoDatabaseSystem查询结果SnoGrade--------------95010950249500792950038295010829500975950146195002552022/12/5AnIntroductiontoDatabaseSystem对查询结果排序(续)[例

25]查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列。SELECT*FROMStudentORDERBYSdept,SageDESC;2022/12/5AnIntroductiontoDatabaseSystem四、使用集函数5

类主要集函数计数COUNT([DISTINCT|ALL]*)COUNT([DISTINCT|ALL]<列名>)计算总和SUM([DISTINCT|ALL]<列名>)计算平均值AVG([DISTINCT|ALL]<列名>)2022/12/5A

nIntroductiontoDatabaseSystem使用集函数(续)求最大值MAX([DISTINCT|ALL]<列名>)求最小值MIN([DISTINCT|ALL]<列名>)–DISTINCT短语:在计算时要取消指定列中

的重复值–ALL短语:不取消重复值–ALL为缺省值2022/12/5AnIntroductiontoDatabaseSystem使用集函数(续)[例26]查询学生总人数。SELECTCOUNT(*)FROMStudent

;[例27]查询选修了课程的学生人数。SELECTCOUNT(DISTINCTSno)FROMSC;注:用DISTINCT以避免重复计算学生人数2022/12/5AnIntroductiontoDatabaseSystem

使用集函数(续)[例28]计算1号课程的学生平均成绩。SELECTAVG(Grade)FROMSCWHERECno='1';[例29]查询选修1号课程的学生最高分数。SELECTMAX(Grade)FROMSCWHER

Cno='1';2022/12/5AnIntroductiontoDatabaseSystem五、对查询结果分组使用GROUPBY子句分组细化集函数的作用对象未对查询结果分组,集函数将作用于整个查询结果对查询结果分组后,集函数将分别作用于每个组2022/12/5AnIntroductionto

DatabaseSystem使用GROUPBY子句分组[例30]求各个课程号及相应的选课人数。SELECTCno,COUNT(Sno)FROMSCGROUPBYCno;结果CnoCOUNT(Sno)1222343444335482022/12/5AnIn

troductiontoDatabaseSystem对查询结果分组(续)GROUPBY子句的作用对象是查询的中间结果表分组方法:按指定的一列或多列值分组,值相等的为一组使用GROUPBY子句后,SELECT子句的列名列表中只能出现分组属性和集函数2022/12/5AnIntro

ductiontoDatabaseSystem使用HAVING短语筛选最终输出结果[例31]查询选修了3门以上课程的学生学号。SELECTSnoFROMSCGROUPBYSnoHAVINGCOUNT(*)>3;2022/12/5AnIntroductiontoDatabaseSystem例题[例

32]查询有3门以上课程是90分以上的学生的学号及(90分以上的)课程数SELECTSno,COUNT(*)FROMSCWHEREGrade>=90GROUPBYSnoHAVINGCOUNT(*)>=3;2022/1

2/5AnIntroductiontoDatabaseSystem使用HAVING短语筛选最终输出结果只有满足HAVING短语指定条件的组才输出HAVING短语与WHERE子句的区别:作用对象不同WHERE子句作用于基表或

视图,从中选择满足条件的元组。HAVING短语作用于组,从中选择满足条件的组。2022/12/5AnIntroductiontoDatabaseSystem下课了。。。休息一会儿。。。

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 6209
  • 被下载 8
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?