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

PPT
  • 阅读 80 次
  • 下载 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第三章关系数据库标准语言S

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

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

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

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

roductiontoDatabaseSystem第三章关系数据库标准语言SQL3.1SQL概述3.2学生-课程数据库3.3数据定义3.4数据查询3.5数据更新3.6视图3.6小结2022/12/5AnIntroductiontoDatab

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

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

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

条件>]]…[,<表级完整性约束条件>]);<表名>:所要定义的基本表的名字<列名>:组成该表的各个属性(列)<列级完整性约束条件>:涉及相应属性列的完整性约束条件<表级完整性约束条件>:涉及一个

或多个属性列的完整性约束条件2022/12/5AnIntroductiontoDatabaseSystem例题[例1]建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组

成。其中学号不能为空,值是唯一的,并且姓名取值也唯一。CREATETABLEStudent(SnoCHAR(5)NOTNULLUNIQUE,SnameCHAR(20)UNIQUE,SsexCHAR(1)

,SageINT,SdeptCHAR(15));2022/12/5AnIntroductiontoDatabaseSystem定义基本表(续)常用完整性约束主码约束:PRIMARYKEY唯一性约束:UNIQUE非空

值约束:NOTNULL参照完整性约束PRIMARYKEY与UNIQUE的区别?2022/12/5AnIntroductiontoDatabaseSystem例题(续)[例2]建立一个“学生选课”表SC,它由学号Sno、课程号Cno,修课成绩Grade组成,其中(

Sno,Cno)为主码。CREATETABLESC(SnoCHAR(5),CnoCHAR(3),Gradeint,Primarykey(Sno,Cno));2022/12/5AnIntroductiontoDatabaseSystem例题(续)SnoSn

ameSsexSageSdept↑↑↑↑↑字符型字符型字符型整数字符型长度为5长度为20长度为1长度为15不能为空值2022/12/5AnIntroductiontoDatabaseSystem三、删除基本表DROPTABLE<表名>;基本表删除数据、

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

tudent;2022/12/5AnIntroductiontoDatabaseSystem二、修改基本表ALTERTABLE<表名>[ADD<新列名><数据类型>[完整性约束]][DROP<完整性约束名>][MODIFY<列名><数据类型>];<表名>:要

修改的基本表ADD子句:增加新列和新的完整性约束条件DROP子句:删除指定的完整性约束条件MODIFY子句:用于修改列名和数据类型2022/12/5AnIntroductiontoDatabaseS

ystem例题[例2]向Student表增加“入学时间”列,其数据类型为日期型。ALTERTABLEStudentADDScomeDATE;不论基本表中原来是否已有数据,新增加的列一律为空值。2022/12/5AnIntroductiontoD

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

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

2/5AnIntroductiontoDatabaseSystem例题[例4]删除学生姓名必须取唯一值的约束。ALTERTABLEStudentDROPUNIQUE(Sname);2022/12/5AnIntroductiontoDat

abaseSystem3.3.2建立与删除索引建立索引是加快查询速度的有效手段建立索引DBA或表的属主(即建立表的人)根据需要建立有些DBMS自动建立以下列上的索引PRIMARYKEYUNIQUE维护索引DBMS自动完成使用索引DBMS自动选择是否使用索引以及使用哪些索引2

022/12/5AnIntroductiontoDatabaseSystem一、建立索引语句格式CREATE[UNIQUE][CLUSTER]INDEX<索引名>ON<表名>(<列名>[<次序>][,<列名>[<次序>]]…);用<表名>指定要建索引的基本表名字索引可以建立在该表的

一列或多列上,各列名之间用逗号分隔用<次序>指定索引值的排列次序,升序:ASC,降序:DESC。缺省值:ASCUNIQUE表明此索引的每一个索引值只对应唯一的数据记录CLUSTER表示要建立的索引是聚簇索引20

22/12/5AnIntroductiontoDatabaseSystem例题[例6]为学生-课程数据库中的Student,Course,SC三个表建立索引。其中Student表按学号升序建唯一索引,Course表按课程号升序建唯一索引,SC表按学号升序和课程号降序建唯一索引。CREATEU

NIQUEINDEXStusnoONStudent(Sno);CREATEUNIQUEINDEXCoucnoONCourse(Cno);CREATEUNIQUEINDEXSCnoONSC(SnoASC,Cn

oDESC);2022/12/5AnIntroductiontoDatabaseSystem建立索引(续)唯一值索引对于已含重复值的属性列不能建UNIQUE索引对某个列建立UNIQUE索引后,插入新记录时DBMS会自动检查新记录在该列上是否取了重复值。这相当

于增加了一个UNIQUE约束2022/12/5AnIntroductiontoDatabaseSystem建立索引(续)聚簇索引建立聚簇索引后,基表中数据也需要按指定的聚簇属性值的升序或降序存放。也即聚簇索引的索引项顺序

与表中记录的物理顺序一致例:CREATECLUSTERINDEXStusnameONStudent(Sname);在Student表的Sname(姓名)列上建立一个聚簇索引,而且Student表中的记录将按

照Sname值的升序存放2022/12/5AnIntroductiontoDatabaseSystem建立索引(续)在一个基本表上最多只能建立一个聚簇索引聚簇索引的用途:对于某些类型的查询,可以提高查询效率聚簇索引的适用范围很少对基表进行增删操作很少对其中的变长

列进行修改操作2022/12/5AnIntroductiontoDatabaseSystem二、删除索引DROPINDEX<索引名>;删除索引时,系统会从数据字典中删去有关该索引的描述。[例7]删除Student表的Stusname索引。DR

OPINDEXStusname;2022/12/5AnIntroductiontoDatabaseSystem3.4查询3.4.1概述3.4.2单表查询3.4.3连接查询3.4.4嵌套查询3.4.5集合查询3.4.6小结2022/12/5AnIntroductiontoDat

abaseSystem3.4.1概述语句格式SELECT[ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]…FROM<表名或视图名>[,<表名或视图名>]…[WHERE<条件表达式>][GROUPBY<列名1>[HAVING<条件表达式>]][ORDERBY<列名2

>[ASC|DESC]];2022/12/5AnIntroductiontoDatabaseSystem语句格式SELECT子句:指定要显示的属性列FROM子句:指定查询对象(基本表或视图)WHERE子句:指定查询条件GROUPBY子句:对查询结果按指定列的值分组,该属性列值相等的元组为

一个组。通常会在每组中作用集函数。HAVING短语:筛选出只有满足指定条件的组ORDERBY子句:对查询结果表按指定列值的升序或降序排序2022/12/5AnIntroductiontoDatabase

System示例数据库学生-课程数据库学生表:Student(Sno,Sname,Ssex,Sage,Sdept)课程表:Course(Cno,Cname,Cpno,Ccredit)学生选课表:SC(Sno,Cno,Grade)2022/12/5AnIntroductionto

DatabaseSystem3.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]查询全体学生的学号与姓名。SELE

CTSno,SnameFROMStudent;[例2]查询全体学生的姓名、学号、所在系。SELECTSname,Sno,SdeptFROMStudent;2022/12/5AnIntroductiontoDatabaseS

ystem查询全部列[例3]查询全体学生的详细记录。SELECTSno,Sname,Ssex,Sage,SdeptFROMStudent;或SELECT*FROMStudent;2022/12/5AnIntroductiontoData

baseSystem3.查询经过计算的值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/5AnIntroductiontoD

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

勇YearofBirth:1976cs刘晨YearofBirth:1977is王名YearofBirth:1978ma张立YearofBirth:1977is2022/12/5AnIntroductiontoDataba

seSystem[例]使用列别名改变查询结果的列标题SELECTSnameNAME,'YearofBirth:’BIRTH,2000-SageBIRTHDAY,ISLOWER(Sdept)DEPARTMENTFROMStudent;输

出结果:NAMEBIRTHBIRTHDAYDEPARTMENT------------------------------------------------------李勇YearofBirth:1976cs刘晨YearofBirth:1977is王名YearofBir

th:1978ma张立YearofBirth:1977is2022/12/5AnIntroductiontoDatabaseSystem二、选择表中的若干元组消除取值重复的行查询满足条件的元组2022/12/5AnIntroductiontoDa

tabaseSystem1.消除取值重复的行在SELECT子句中使用DISTINCT短语假设SC表中有下列数据SnoCnoGrade---------------------9500119295001285950013889500229095002

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

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

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

022/12/5AnIntroductiontoDatabaseSystem2.查询满足条件的元组表3.3常用的查询条件查询条件谓词比较=,>,<,>=,<=,!=,<>,!>,!<;NOT+上述比较运

算符确定范围BETWEENAND,NOTBETWEENAND确定集合IN,NOTIN字符匹配LIKE,NOTLIKE空值ISNULL,ISNOTNULL多重条件AND,ORWHERE子句常用的查询条件2022/12/5AnIntroductiontoDatabaseSystem(1)比较大小在W

HERE子句的<比较条件>中使用比较运算符=,>,<,>=,<=,!=或<>,!>,!<,逻辑运算符NOT+比较运算符[例8]查询所有年龄在20岁以下的学生姓名及其年龄。SELECTSname,SageFROMStudentWHERESage<20;或SELECTSname,Sa

geFROMStudentWHERENOTSage>=20;2022/12/5AnIntroductiontoDatabaseSystem(2)确定范围使用谓词BETWEEN…AND…NOTBETWEEN…AND…[例10]查询年龄在20~23岁(包括20岁和2

3岁)之间的学生的姓名、系别和年龄。SELECTSname,Sdept,SageFROMStudentWHERESageBETWEEN20AND23;2022/12/5AnIntroductiontoDatabaseSystem例题(续)[例11]查询年

龄不在20~23岁之间的学生姓名、系别和年龄。SELECTSname,Sdept,SageFROMStudentWHERESageNOTBETWEEN20AND23;2022/12/5AnIntroductiontoDatabaseSystem(3)确定集合使用谓词IN<值表>,NO

TIN<值表><值表>:用逗号分隔的一组取值[例12]查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。SELECTSname,SsexFROMStudentWHERESdeptIN('IS','MA','CS');2022/1

2/5AnIntroductiontoDatabaseSystem(3)确定集合[例13]查询既不是信息系、数学系,也不是计算机科学系的学生的姓名和性别。SELECTSname,SsexFROMStudentWHERESdeptNOTIN('IS','

MA','CS');2022/12/5AnIntroductiontoDatabaseSystem(4)字符串匹配[NOT]LIKE„<匹配串>‟[ESCAPE„<换码字符>‟]<匹配串>:指定匹配模板匹配模板:固定字符串或含通配符的字符串当匹配模板为固定字符串时,

可以用=运算符取代LIKE谓词用!=或<>运算符取代NOTLIKE谓词2022/12/5AnIntroductiontoDatabaseSystem通配符%(百分号)代表任意长度(长度可以为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/5AnIntroductiontoDatabaseS

ystem例题(续)3)使用换码字符将通配符转义为普通字符[例19]查询DB_Design课程的课程号和学分。SELECTCno,CcreditFROMCourseWHERECnameLIKE'DB\_Design'ESCAPE'\'2022/12/5AnIntroducti

ontoDatabaseSystem例题(续)使用换码字符将通配符转义为普通字符(续)[例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,CnoFROMSCWHEREGrad

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

现多种其他谓词[NOT]IN[NOT]BETWEEN…AND…2022/12/5AnIntroductiontoDatabaseSystem例题[例23]查询计算机系年龄在20岁以下的学生姓名。SELECTSnameFROMStudentWHERESdept='CS'A

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

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

System改写[例10][例10]查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄。SELECTSname,Sdept,SageFROMStudentWHERESageBETWEEN20AND23;可改写为:SELECT

Sname,Sdept,SageFROMStudentWHERESage>=20ANDSage<=23;2022/12/5AnIntroductiontoDatabaseSystem三、对查询结果排序使用ORDERBY子句可以按一个或多个属性列排

序升序:ASC;降序:DESC;缺省值为升序当排序列含空值时ASC:排序列为空值的元组最后显示DESC:排序列为空值的元组最先显示2022/12/5AnIntroductiontoDatabaseSys

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

eSystem查询结果SnoGrade--------------95010950249500792950038295010829500975950146195002552022/12/5AnIntr

oductiontoDatabaseSystem对查询结果排序(续)[例25]查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列。SELECT*FROMStudentORDERBYSdept,SageDESC;2022/12/5AnIntroduc

tiontoDatabaseSystem四、使用集函数5类主要集函数计数COUNT([DISTINCT|ALL]*)COUNT([DISTINCT|ALL]<列名>)计算总和SUM([DISTINCT|ALL]<列名>)计算平均值AVG([DISTINCT|ALL

]<列名>)2022/12/5AnIntroductiontoDatabaseSystem使用集函数(续)求最大值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)FROMS

CWHERECno='1';[例29]查询选修1号课程的学生最高分数。SELECTMAX(Grade)FROMSCWHERCno='1';2022/12/5AnIntroductiontoDatabaseSystem五、对查询结果分组使用GROUPBY子句分组细化集函数的作用

对象未对查询结果分组,集函数将作用于整个查询结果对查询结果分组后,集函数将分别作用于每个组2022/12/5AnIntroductiontoDatabaseSystem使用GROUPBY子句分组[例30]求各个课程号及相应的选课人数。SELECTCno,COUNT(Sn

o)FROMSCGROUPBYCno;结果CnoCOUNT(Sno)1222343444335482022/12/5AnIntroductiontoDatabaseSystem对查询结果分组(续)GROUPBY子句的作用对象是查询的中间结

果表分组方法:按指定的一列或多列值分组,值相等的为一组使用GROUPBY子句后,SELECT子句的列名列表中只能出现分组属性和集函数2022/12/5AnIntroductiontoDatabaseSystem使用HAVING短语筛选最终输出结果[例31]

查询选修了3门以上课程的学生学号。SELECTSnoFROMSCGROUPBYSnoHAVINGCOUNT(*)>3;2022/12/5AnIntroductiontoDatabaseSystem例题[例32]查询有3门以上课

程是90分以上的学生的学号及(90分以上的)课程数SELECTSno,COUNT(*)FROMSCWHEREGrade>=90GROUPBYSnoHAVINGCOUNT(*)>=3;2022/12/5AnIntroductiontoDatabaseSystem使用HAV

ING短语筛选最终输出结果只有满足HAVING短语指定条件的组才输出HAVING短语与WHERE子句的区别:作用对象不同WHERE子句作用于基表或视图,从中选择满足条件的元组。HAVING短语作用于组,从中选择

满足条件的组。2022/12/5AnIntroductiontoDatabaseSystem下课了。。。休息一会儿。。。

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