数据库复习PPT_第1页
数据库复习PPT_第2页
数据库复习PPT_第3页
数据库复习PPT_第4页
数据库复习PPT_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库应用技术数据库应用技术复习复习实体-联系图 (Entity-Relation Diagram)用来建立数据模型,在数据库系统概论中属于概念设计阶段,形成一个独立于机器,独立于DBMS的ER图模型。构成E-R图的基本要素是实体、属性和联系,其表示方法为: n实体型:用矩形表示,矩形框内写明实体名; n属性:用椭圆形表示,并用无向边将其与相应的实体连接起来;多值属性由双线连接;主属性名称下加下划线n联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型。n在E-R图中要明确表明1对多关系,1对1关系和多对多关系。 n1对1关系在两个实体连线方向写

2、1; n1对多关系在1的一方写1,多的一方写N; n多对多关系则是在两个实体连线方向各写N,M。n关系数据模型是目前最重要的一种数据模型,它的三个要素是( )。A. 实体完整性、参照完整性、用户自定义完整性B. 数据结构、数据操作、完整性约束C. 数据增加、数据修改、数据查询D. 外模式、模式、内模式学生社团可以接纳多名学生参加,但每个学生只能参加一个社团,从社团到学生之间的联系是( )。A.多对多 B. 一对一C. 多对一 D. 一对多Microsoft SQL Server 2008 共有四个系统数据库。master 数据库master 数据库用于记录系统内所有系统级别的信息,包括系统配置

3、、登录帐户、其它数据库的配置等。tempdb 数据库tempdb 数据库为临时数据库,在对其它数据库进行查询等操作时,将临时表、临时结果等保存在该数据库中。SQL Server 每次重新启动后都会重建该数据库。model 数据库model 数据库为模板数据库,每次新建数据库时以该数据库为模板进行创建。msdb 数据库msdb 数据库供代理程序调度警报和作业以及记录操作员时使用。数据库的创建u使用Transact-SQL语句创建数据库 命令格式:CREATE DATABASE database_nameCREATE DATABASE database_nameON ,.n ,.nLOG ON ,

4、.nFOR ATTACH数据库的创建CREATE DATABASE 数据库名ONPRIMARY ( NAME = 逻辑文件名,FILENAME = 物理文件名 , SIZE = 初始大小 , MAXSIZE = 最大大小 | UNLIMITED , FILEGROWTH = 文件增长幅度) , nLOG ONPRIMARY ( NAME = 逻辑文件名 ,FILENAME = 物理文件名 , SIZE = 初始大小 , MAXSIZE = 最大大小 | UNLIMITED , FILEGROWH = 文件增长幅度 ) , n;nSQL Server 2008的物理存储主要包括三类文件,它们是(

5、 )。A.表文件、存储文件、事务日志文件 B.主数据文件、次数据文件、文本文件C. 主数据文件、次数据文件、事务日志文件 D. 表文件、索引文件、存储文件 nSQL Server 2008数据库文件有3类,其中日志文件的后缀为( ) 。nSQL SERVER中数据库文件的扩展名为( )。 A ndf Bldf C mdf D idfn下面( )不属于SQL Server 2008的系统数据库。 A. MasterB. TempDB C. DBMSD. Model列名列名数据类型数据类型是否允许为空是否允许为空是否主键是否主键备注备注SnoChar(8)不允许是学号SnameChar(40)不允

6、许否姓名SsexChar(1)允许否性别Sage int允许否年龄SdeptChar(10)允许系系别“学生信息(student)”表:列名列名数据类型数据类型是否允许为空是否允许为空是否主键是否主键备注备注CnoChar(5)不允许是课程号;CnameChar(30)不允许否课程名称Ccreditint允许否学分Chours int允许否学时“课程(course)”表列名列名数据类型数据类型是否允许为空是否允许为空 是否主键是否主键备注备注SnoChar(8)不允许是学号CnoChar(5)不允许是课程号Gradeint允许否成绩“学生选课信息(SC)”表语法格式:语法格式:CREATE T

7、ABLE table_name ( /*列的定义*| column_name AS computed_column_expression /*定义计算列*/ /*指定表的约束*/ )使用CREATE TABLE 创建表使用CREATE TABLE 创建表 【例例 】创建创建Course表。表。字字 段段 名名数数 据据 类类 型型长度(字节数)长度(字节数)完整性约束完整性约束中中 文文 描描 述述Cnochar5NOT NULL课程号Cnamechar30NOT NULL课程名称Ccreditint4NULL学分Choursint4NULL学时数USE db_stuCREATE TABLE

8、Course(Cno char(5) PRIMARY KEY NOT NULL,Cname char(30) NOT NULL,Ccredit int NULL,Chours int NULL)使用CREATE TABLE 创建表 列名列名数据类型数据类型是否允许为空是否允许为空 是否主键是否主键 备注备注SnoChar(8)不允许是学号SnameChar(40)不允许否姓名SsexChar(1)允许否性别Sage int允许否年龄SdeptChar(10)允许系系别使用CREATE TABLE 创建表 create table studentcreate table student ( sn

9、osno char(8 char(8) ) SnameSname char(40 char(40) ) unique not null,; ; Sex char(1); Sex char(1); Sage Sage intint; ; SdeptSdept char(8) char(8) ) 列名列名数据类型数据类型是否允许为空是否允许为空是否主键是否主键备注备注SnoSnoChar(8)Char(8)不允许不允许是是学号学号SnameSnameChar(40)Char(40)不允许不允许否否姓名姓名SsexSsexChar(1)Char(1)允许允许否否性别性别SageSage intint

10、允许允许否否年龄年龄SdeptSdeptChar(10)Char(10)允许允许系系系别系别使用CREATE TABLE 创建表 列名列名数据类型数据类型是否允许为空是否允许为空是否主键是否主键备注备注SnoSnoChar(8)Char(8)不允许不允许是是学号学号CnoCnoChar(5)Char(5)不允许不允许是是课程号课程号GradeGradeintint允许允许否否成绩成绩create table SCcreate table SC( Sno char(8); Cno char(5); Grade int; Primary key (sno,Cno) ) 使用CREATE DATAB

11、ASE创建数据库使用DROP DATABASE删除数据库使用CREATE TABLE创建表使用ALTER TABLE修改表使用DROP TABLE删除表小 结使用INSERT语句插入表数据 语法格式:语法格式:INSERT INTO table_name /*表名*/ | view_name /*视图名*/ (column_list) /*列表*/ VALUES /*指定列值的子句*/ (DEFAULT | NULL |expression ,n) /*列值的构成形式*/ 使用DELETE语句删除数据 使用使用DELETEDELETE语句删除数据语句删除数据语法格式:语法格式:DELETE F

12、ROM/*从表中删除数据或从视图删除数据*/ WHERE /*指定条件*/使用UPDATE语句修改数据语法格式语法格式: : UPDATE SET = = WHERE n将所有学生的年龄增加5岁。 update student set Sage=Sage+5n删除成绩为(少于少于4040分分)的学生的选课记录。 Delete from SC where grade40列名列名数据类型数据类型是否允许为空是否允许为空是否主键是否主键备注备注SnoSnoChar(8)Char(8)不允许不允许是是学号学号SnameSnameChar(40)Char(40)不允许不允许否否姓名姓名SsexSsexC

13、har(1)Char(1)允许允许否否性别性别SageSage intint允许允许否否年龄年龄SdeptSdeptChar(10)Char(10)允许允许系系系别系别nstudent 表中,插入学生姓名为“ZhangSan”(其它信息任意)。Insert into dbo.student(Sno,Sname,Ssex)values(50901012,ZhangSan,M )数据库的查询 语法格式:语法格式:SELECT /*指定要选择的列或行及其限定*/ INTO /*INTO子句,指定结果存入新表*/FROM /*FROM子句,指定表或视图*/ WHERE /*WHERE子句,指定查询条件

14、*/ GROUP BY /*GROUP BY子句,指定分组表达式*/ HAVING /*HAVING子句,指定分组统计条件*/ ORDER BY ASC | DESC /*ORDER子句,指定排序表达式和顺序*/n 标志在关键字FROM后编辑需要查询的列或视图。本章针对一个表进行查询,多个表之间的查询在第7章介绍。n 标志关键字WHERE后编辑查询的限制条件,条件表达式如同第5章CHECK约束的验证表达式。n 标志关键字GROUP BY后编辑查询结果的分组条件,用来将查询结果集分组,常用于分组统计。n 标志关键字HAVING后编辑搜索条件,与WHERE关键字类似,HAVING主要针对组或集合,

15、常与GROUP BY结合使用。n 标志关键字ORDER BY后编辑字段列表,根据字段数据值排序,后跟ASC(以升序排列)或DESC(以降序排列)。SELECT语法格式DISTINCTDISTINCT关键字关键字DISTINCT关键字用于去除查询结果中的重复元组。例如,查询课程的学分值有哪些,可以使用如下的SELECT子句。SELECT Ccredit FROM Course选择列SELECT DISTINCT Ccredit FROM Course统计结果集(聚合和汇总)n对数据进行统计。用户经常需要对结果集进行统计,例如求和、平均值、最大值、最小值、个数等,这些统计可以通过聚合函数、COMP

16、UTE子句、GROUP BY子句来实现。 n常用的聚合函数聚合函数聚合函数含义含义COUNT( DISTINCT | ALL * )统计记录个数。COUNT( DISTINCT | ALL )统计列中值的个数。SUM( DISTINCT | ALL )计算列值的总和(此列必须是数值型)。AVG( DISTINCT | ALL )计算列值的平均值(此列必须是数值型)。MAX( DISTINCT | ALL )求列值中的最大值。MIN( DISTINCT | ALL )求列值中的最小值选择行使用使用LIKELIKE关键字的查询关键字的查询n用户有时对要查询的数据表中的数据了解不是很全面,如要查找某

17、个学生的信息,但是不知道该学生的姓氏,只知道学生名字叫Yan,这时就需要使用LIKE关键字进行模糊查询。nLIKE关键字需要使用通配符在字符串内查找指定的模式,所以我们先来了解通配符的含义。LIKELIKE关键字中的通配符及其含义关键字中的通配符及其含义通配符通配符说明说明%代表代表0到多个字符组成的任意字符串到多个字符组成的任意字符串_任意单个字符任意单个字符 用于指定连续范围如用于指定连续范围如A-Z表示表示A到到Z之间的任意字符之间的任意字符 表示指定范围之外的如表示指定范围之外的如A-F表示表示A到到F之外的任意字符之外的任意字符【例】通配符的示例:示例示例含义含义LIKE Ac%返回

18、以“Ac”开始的任意字符串。LIKE %abc返回以“abc”结束的任意字符串。LIKE %abc%返回包含“abc”的任意字符串。LIKE _ab返回以“ab”结束的三个字符的字符串。LIKE ACK% 返回以“A”、“C”或“K”开始的任意字符串。LIKE A-Ting返回四个字符的字符串,结尾是“ing”,首字符的范围从A到T。LIKE Mc% 返回以“M”开始且第二个字符不是“c”的任意长度的字符串。n下面字符串能与通配符表达式 ABC%a 进行匹配的是:( )。A. BCDEF B. A_BCD C. C. ABC_aABC_a D. A%an下面聚集函数中哪个只能用于计算数值类型的

19、数据( ) A. COUNT( ) B. SUM( ) C. MAX( ) D. MIN( )n对于某语句的条件WHERE Sname LIKE CSher%y ,将筛选出( )值。 A. CSherry B. Shers C.Chrriey D. CSHerryn在SELECT语句中,用于去除重复行的关键字是 ( )。 A.TOP B. DISTINCT C. PERCENT D. HAVINGnSELECT语句中与HAVING子句通常同时使用的是( )子句。A.ORDER BY B. WHERE C. GROUP BY D. 无需配合n要删除视图myview,可以使用( )语句。A. DR

20、OP myview B. DROP VIEW myviewC. DROP INDEX myview D. DROP TABLE myviewnSELECT查询中,要把结果中的行按照某一列的值进行排序,所用到的子句是( )。 A. WHERE B. ORDER BY C. GROUP BY D. HAVINGn下列用于定义字段的SQL语句中,错误的是( )。A. 学号 varchar(10) B. 成绩 int 4 C. 产量 float D. 价格 decimal(8,4)n在查询语句的Select子句中使用( )符号,则从From子句中指定的表或视图中查询并返回所有列。A.- B. C. *

21、 D. #nT-SQL语言的字符串常量都要包含在( )内。A. 双引号 B. 单引号 C. 书名号 D. 中括号nSQL Server的字符型系统数据类型主要包括( )。A.Int、money、char B.datetime、binary、intC.char、varchar、text D.char、varchar、intn学生关系模式S(Sno, Sname, Ssex, Age),要在表S中删除Age ,可选用的SQL语句是( )。 A. DELETE Age FROM S B. ALTER TABLE S DROP Age C. UPDATE S Age D. ALTER TABLE S

22、Age n欲往表中增加一条记录,应该用哪一条SQL语句( ) A.ALTER TABLE B.INSERT INTO TABLE C. CREATE TABLE D. DROP TABLEnWHERE子句用来指定( )。A. 查询结果的分组条件B. 组或聚合的搜索条件 C. 限定返回行的搜索条件D. 结果集的排序方式HAVINGHAVING子句子句前面学习过WHERE子句,它主要和关键字SELECT配合使用,用于分组之间的条件,而分组之后的条件就要用到HAVING子句了,它主要和GROUP BY配合使用。【例】 查询选修3门以上课程的学生的学号。SELECT SnoFROM SCGROUP B

23、Y SnoHAVING COUNT ( * ) = 3数据汇总排序结果集(ORDER BY)n语法格式:语法格式:ORDER BY order_by_expression1 ASC|DESC,order_by_expression2ASC|DESC ,n对查询结果按照一个或多个属性列的升序(ASC)或降序(DESC)排列,默认为升序。n当按多列排序时,先按前面的列排序,值相同再按后面的列排序。41ORDER BY子句可以对查询结果按照一个或多个属性列的升序(ASC)或降序(DESC)排列,默认值为升序排列。【例】 查询学生的详细信息,查询结果按照学生姓名进行降序排列。SELECT *FROM

24、StudentORDER BY Sname DESC排序【例】 查询ZhangQiang同学BIT课程的考试成绩。SELECT GradeFROM Student , Course , SCWHERE Student.Sno = SC.Sno AND Course.Cno = SC.Cno ANDSname = ZhangQiang AND Cname = BIT 连接嵌套查询嵌套查询n一个外层查询中包含有另一个内层查询称为嵌套查询,即一个SELECT.FROM.WHERE查询语句块可以嵌套在另一个SELECT.FROM.WHERE查询语句块的WHERE子句中。n其中,外层查询称为主查询,内层

25、查询称为子查询,子查询的结果作为主查询的条件。选择行含有含有ININ的嵌套查询的嵌套查询与WangYu同龄的学生的姓名。SELECT SnameFROM StudentWHERE Sage IN ( SELECT Sage ( SELECT Sage FROM StudentFROM StudentWHERE Sname = WangYu WHERE Sname = WangYu ) )选择行【例】 查询选修了MIS课程的学生的姓名。SELECT Sname FROM Student WHERE Sno IN( ( SELECT SELECT SnoSno FROM SC FROM SC WH

26、ERE WHERE CnoCno IN IN 嵌套查询n查找所有姓李的学生的姓名,学号和性别。 select Sname,Sno,Ssex from dbo.studentwhere Sname like 李%n查询 IS,CS,MA系的所有学生的姓名和性别。 select Sname ,Ssex,Sdept from studentwhere Sdept=IS or Sdept=CS or Sdept=MA n查询与张三在同一个系学习的学生的信息。 Select * from student where Sdept in (select Sdept from dbo.student wher

27、e Sname=张三)n查询年龄在20岁以下的学生的姓名及其年龄。 select Sname, Sagefrom dbo.studentwhere Sage=20n查询学生总人数。select COUNT(Sno) as 人数 from dbo.studentn查询选课学生总人数。Select COUNT(Sno) as 人数 from SCn查询全体学生的所有信息。 SELECT * From Studentn 删除课程号cno为“100003100003”的课程信息。n查询姓名sname中第二个字为“华华”的女学生的姓名、性别。 练习n把course表中课程号为2的课程的学分修改为4。n在

28、student表中查询年龄大于18的学生的所有信息,并按学号降序排列。n计算1号课程的学生平均成绩。n在student表中查询Sdept是CS的学生的所有信息,并按Sno升序排列。n在以上三个表中查询Ccredit为5并且Grade大于60的学生的学号、姓名和性别。视图概念 视图与表(有时为与视图区别,也称表为基本表Base Table)不同,视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中只存储视图的定义,对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表。 视图是从一个或多个表(或视图)导出的表。视图是数据库的用户使用数据库的观点。 n视图是一个虚拟表,并不存储

29、任何物理数据。视图与真正的表很类似,也是由一组命名的列和数据行组成,其内容由查询所定义。n但是视图并不是以一组数据形式存储在数据库中,数据库中只存储视图的定义,而不存在视图中的数据,视图中的数据仍存储在基本表中。n当基本表中的数据发生变化时,从视图中查询出来的数据也随之改变。视图和表相比有独特的优势主要有以下几个方面:(1)保证数据的安全。(2)简化查询操作。(3)保证数据的逻辑独立性。创建视图使用使用CREATE VIEWCREATE VIEW语句创建视图语句创建视图语法格式:语法格式:CREATE VIEW . . view_name ( column_name ,n ) WITH ,n

30、AS select_statement WITH CHECK OPTION n创建信息系学生信息的视图。CREATE VIEW IS_VIEWAS SLELCT * FROM StudentWHERE Sdept=IS创建视图创建【BA_STU】视图,包括工商管理专业学生的学号、其选修的课程号及相对应的课程成绩。AS SELECT Student.Sno ,Cno,GradeFROM Student ,SCWHERE Student.Sno = SC.Sno AND Sdept =BA在SQL Server中,索引按B-Tree树结构进行组织。索引B-Tree树中的每一页称为一个索引节点。真正

31、的数据页链只能按一种方式进行排序,而聚集索引确定表中数据的物理顺序,并且聚集索引规定数据在表中的物理存储顺序。1. 聚集索引索引的创建2. 非聚集索引非聚集索引的数据存储在一个位置,索引存储在另一个位置,索引带有指针指向数据的存储位置。索引中的项目按索引值的顺序存储,而表中的信息按另一种顺序存储。索引的创建n在T .SQL语句中,可以使用CREATE INDEX语句来创建,语法格式如下: CREATE UNIQUECLUSTERED|NONCLUSTERED INDEX index_nameindex_name ON table_name(column_name ASC|DESC,n) 索引的

32、创建n其中各参数的含义如下: UNIQUE:为表或视图建立唯一索引。 CLUSTERED|NONCLUSTERED:用于建立聚类或非聚类索引。 index_name:索引名称 table_name:指定建立索引的表名。 column_name:指定建立索引列名。索引的创建【例】 下面的语句用于在表【Student】的【Sno】列上建立非聚集索引,索引名字为【stu_index】,顺序为升序。USE db_stuGOCREATE NONCLUSTERED INDEX stu_indexOn Student(Sno ASC)索引的创建n下列设T-SQL语句中出现语法错误的是 ( )。 A. DEC

33、LARE abc int B. SELECT * FROM SC C. CREATE DATABASE D. DELETE * FROM graden在SQL Server 2008中,索引的顺序和数据表的物理顺序相同的索引是( )。A.聚集索引 B. 非聚集索引 C. 主键索引 D. 唯一索引nT-SQL语言的字符串常量都要包含在( )内。A.双引号 B. 单引号 C. 书名号 D. 中括号n SQL Server的字符型系统数据类型主要包括( )。A. Int、money、char B. datetime、binary、intC. char、varchar、text D. char、var

34、char、int索引的删除 n 通过通过SQL命令删除索引命令删除索引在T .SQL语句中,可以使用DROP INDEX语句删除数据库中相应表的索引,其语法格式 n DROP INDEX table.index | view.index ,.n 参数含义:table | view:索引列所在的表或索引视图。Index:要删除的索引名称。n:表示可以指定多个要删除的索引。功能:从当前数据库中删除一个或多个索引。 【例】下面的语句用于从表【Student】中删除索引【stu_index】。 DROP INDEX Student.stu_index索引的删除 根据作用域的数据库对象和范围的不同,数据

35、完整性可以分为如下几类。完整性约束是一组完整的数据约束规则,它规定了数据模型中的数据必须符合的条件,对数据作任何操作时都必须保证完整。关系的完整性约束条件包括三大类:实体完整性,参照完整性, 用户定义的完整性; 实体完整性,关系的主属性值不能取空值。数据完整性的分类 参照完整性,参照关系(子表)的外键取值不能超出被参照关系(父表)的主键取值。 用户定义的完整性,属性取值满足某种条件或函数要求,包括对每个关系的取值限制(或称约束)的具体定义数据完整性的分类 n在SQL Server 中有6种约束,以下( )不属于该6种约束。A.主键约束 B. 外键约束 C.唯一性约束 D. 关联约束n( )用于

36、对表中某列或某些列数据的有效范围进行限制,系统在输入或修改数据时对数据的有效性进行自动检查,以判断列中的数据值是否有效。A.Check约束 B. Unique约束 C. Primary Key D. default约束n下面( )约束用来禁止输入重复值?A.UNIQUE B.NULL C.DEFAULT D.FOREIGN KEY触发器中使用的特殊表n执行触发器时,系统创建了两个特殊的逻辑表逻辑表n这两个逻辑表,由系统来维护。用户不能对它们进行修改。n它们存放在内存中而不是数据库中。这两个表的结构总是与被该触发器作用的表的结构相同。触发器执行完成后,与该触发器相关的这两个表也被删除。n下面(

37、)命令不可以激活DML触发器。A.INSERTB. SELECT C .DELETED. UPDATEn下面关于触发器的描述,错误的是 ( ) 。A. 触发器表和DELETED表没有共同记录。B. 触发器是一种特殊的存储过程,用户可以直接调用。C. 触发器可以用来定义比CHECK约束更复杂的规则。D. 删除触发器可以使用DROP TRIGGER命令,也可以使用企业管理器。什么是用户自定义函数?根据函数返回值的类型,可以将用户自定义函数分为哪几类?n什么是用户自定义函数?根据函数返回值的类型,可以将用户自定义函数分为哪几类?n用户自定义函数是一系列T-SQL语句的有序集合,它可以被预优化和编译,

38、并且可以在工作中被作为一个单一的单元来调用。n根据返回值类型不同,用户自定义函数可分为三类:(1)标量值函数。(2)内嵌表值函数。(3)多语句表值函数。【例】 在表【Student】中创建一个名字为studel的触发器,当要删除学生时,触发器被触发,检查表【SC】,并同时删除相同学号的学生。USE db_stuGOASBEGINENDCREATE TRIGGER add_studenton student AFTER INSERTASIF (SELECT Ssex FROM inserted) not in (男,女)BEGINPRINT 性别不符合规范 ROLLBACK TRANSACTIONEND触发器 备份备份的目的备份的目的备份是对备份是对SQL Server数据库或事务日志数据库或事务日志进行的复制,进行的复制,如果数据库因意外而损坏,可用来恢复数据库。如果数据库因意外而损坏,可用来恢复数据库。数据库备份类型n完全备份:完全备份:对数据库整体的备份。对数据库整体的备份。n差异备份:差异备份:对数据库自前一个完全备

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论