SQLServer2012数据库设计与开发实务

SQLServer2012数据库设计与开发实务"

作者:陈会安
ISBN:9787302318989
定价:¥68
字数:千字
页数:
出版时间:2013.07.01
开本:
版次:1-1
装帧:
出版社:清华大学出版社
简介

本书从数据库系统设计与开发者角度出发,详细深入地介绍了SQL Server数据库程序设计与开发的方法和技巧,内容包括数据库系统相关理论、数据库设计理论、T-SQL语言的语法、预存程序、过程对象、自定义函数、触发程序、数据指针和交易处理。本书完美结合数据库理论与设计实践,除了使用大量图形来介绍数据库系统理论、实体关系模型和正规化外,更以实例介绍数据库设计。读者不仅可以使用数据库设计工具组绘制专业的实体关系图,还可以将设计结果建成SQL Server数据库,来验证实体关系模型的数据库设计理论。

本书适用于微软SQL Server 2012企业版、标准版以及Express版,是数据库设计与开发人员或学校数据库设计相关课程所规划的实用教材和实训指南。

前言

在计算机科学应用领域中,数据库系统是企业组织或家庭计算机化的真正幕后推手,通过数据库提供的信息可以节省大量人力、增加工作效率和生活的便利性。可以说,数据库系统才是创建目前信息社会和维持其运作的主角。

SQL Server是微软公司针对企业巿场推出的数据库产品,也是目前巿场上著名的数据库产品之一。2012年4月推出的SQL Server 2012版,支持文件数据表(FileTable)和顺序对象(Sequences),具有更强的全文搜索和可用性功能。在T-SQL语言部分,支持更多全新内置函数,例如:IIF()和CHOOSE()逻辑函数,OFFSET和FETCH NEXT分页查询,以及错误处理的THROW命令叙述等。

本书是一本以数据库系统设计与开发者角度所编写的SQL Server 2012版,详细介绍了基本的数据库观念、数据库设计理论和T-SQL程序设计。简单地说,这是一本完整说明数据库设计与开发人员应具备的理论、观念和技能,帮助你精通SQL Server的Transact-SQL程序设计。

在定位上,本书是一本介绍数据处理、数据库相关理论和数据库设计的教材,适合一般大学、科技大学或技术学院数据库、关系数据库系统相关课程使用的教科书。在内容上,这是一本帮助读者创建正确的数据库观念、数据库设计理论和T-SQL程序设计技能的书,笔者希望通过理论的导引让读者真正了解数据库设计与开发人员所需执行的工作,以及需要拥有哪些理论、观念和技能。

鉴于目前巿面上大部分同类书籍都缺乏相关理论基础的介绍,读者就算学会了T-SQL语法和操作,仍然缺乏理论基础的支持,无法真正融会贯通,所以本书在内容上完美结合理论与实务,不仅提供操作规范和数据库设计范例,还使用大量图例和表格来说明相关理论和概念,让读者不仅能够轻松学习数据库系统的相关理论,还可以使用SQL Server 2012创建数据库来验证所学知识。

如何阅读本书

全书共分为六篇20章,以循序渐进的方式来详细介绍SQL Server 2012数据库系统的设计与开发。

第一篇:数据库理论与SQL Server基础

第1章介绍数据库定义、ANSI/SPARC三层架构的数据库系统、数据库架构、数据库管理员负责的工作和处理结构;第2章介绍数据库模型基础和关系数据库模型;第3章介绍实体关系模型与规范化,以便读者拥有完整的数据库理论基础;第4章介绍SQL Server 2012版的安装和基本操作。

第二篇:创建SQL Server数据库与数据表

第5章介绍如何使用数据库设计工具创建实体关系图;第6章介绍什么是SQL语言,详细介绍SQL Server的数据库结构,接着分别使用Management Studio或T-SQL命令创建、修改和删除用户数据库,最后是数据库的分离与附加;第7章介绍数据类型、创建数据表和完整性约束,并且在最后介绍临时表。

第三篇:T-SQL的DML命令

第8章介绍单一数据表的查询和分组查询;第9章介绍多数据表查询的连接、集合和子查询,并且介绍SQL Server 2012新增的OFFSET和FETCH NEXT命令;第10章介绍DML语言的INSERT、UPDATE和DELETE命令,介绍如何在数据表中新增、更新和删除记录数据,以及从SQL Server 2008开始支持的MERGE命令和OUTPUT子句。

第四篇:SQL Server视图与索引

第11章介绍如何在SQL Server数据库中创建视图;第12章介绍数据表索引的规划和创建,包含索引结构、SQL Server自动创建的索引、执行计划和视图,计算列的索引与筛选索引,以及SQL Server 2012新增的列存放区索引。

第五篇:T-SQL程序设计与客户端程序开发

第13~17章介绍T-SQL程序设计,详细介绍Transact-SQL程序化功能的语法、如何创建存储过程、序列对象(2012版新增功能)、自定义函数、数据游标、触发器和事务处理;第18章在介绍ADO.NET和中间件后,还介绍了如何使用Visual Basic 2010和LINQ创建客户端程序。

第六篇:使用SQL Server处理非关系性数据

因为SQL Server 2012是一套原生XML数据库,所以在第19章介绍SQL Server处理非关系数据的FILESTREAM和FileTable后,详细介绍SQL Server的XML功能;第20章介绍如何在SQL Server中执行全文搜索。

编写本书虽力求完美,但由于学识与经验有限,不足之处在所难免,尚祈读者不吝指正。

陈会安Joe Chen

 

光 盘 内 容

为了方便读者实际操作本书内容,笔者将本书使用的相关软件和范例文件都收录在书附光盘中,如下表所示。

文件夹或文件 说    明

Ch04~Ch20、AppA、AppB文件夹 本书各章T-SQL范例脚本文件和SQL Server数据库文件,第18章是Visual Studio 2010项目

Tools文件夹 Toad Data Modeler工具的下载快捷方式

SQL Server 2012中文评估版的下载网址如下:

http://www.microsoft.com/zh-cn/download/details.aspx?id=29066

版 权 声 明

本书光盘内含的共享软件或公共软件,其著作权皆属原开发厂商或著作人,请在安装后详细阅读各工具的授权和使用说明。本书作者和出版商仅收取光盘的制作成本,内含软件为随书赠送,提供本书读者练习之用,与光盘中各软件的著作权和其他利益无涉,如果在使用过程中因软件所造成的任何损失,与本书作者和出版商无关。

目录

 

第1章  数据库系统 1

1.1  数据库系统基础 1

1.1.1  数据库的定义 2

1.1.2  数据建模 3

1.1.3  数据库环境的组件 5

1.2  三层数据库系统架构 7

1.2.1  概念层 8

1.2.2  外部层 9

1.2.3  内部层 10

1.3  数据库架构 10

1.3.1  三层数据库架构 11

1.3.2  数据库架构之间的映射 13

1.3.3  实体与逻辑数据独立 14

1.4  数据库管理系统 15

1.5  数据库管理员 16

1.6  数据库系统的处理架构 18

1.6.1  集中式处理架构 18

1.6.2  分布式处理架构 19

1.7  习题 20

第2章  关系数据库模型 21

2.1  数据库模型基础 21

2.1.1  层级式数据库模型 22

2.1.2  网络式数据库模型 23

2.1.3  关系数据库模型 25

2.2  数据结构 25

2.2.1  关系表架构 25

2.2.2  关系表实例 27

2.2.3  定义域 28

2.2.4  属性值 29

2.2.5  空值 29

2.2.6  关系表的特性 30

2.3  数据操作或运算 30

2.3.1  关系型算术 30

2.3.2  关系型计算 31

2.3.3  SQL语言与关系型算术与

计算 32

2.4  完整性约束 32

2.4.1  键约束 32

2.4.2  定义域约束 36

2.4.3  实体完整性 36

2.4.4  引用完整性 37

2.4.5  其他完整性约束 39

2.5  习题 40

第3章  实体关系模型与规范化 41

3.1 实体关系模型与实体关系图 41

3.1.1  实体关系模型的基础 41

3.1.2  实体关系图的基础 42

3.1.3  实体类型 44

3.1.4  关系类型 44

3.1.5  关系约束 45

3.1.6  属性 48

3.1.7  弱实体类型 49

3.2  将实体关系图转换成

关系表架构 50

3.2.1  将强实体类型转换成

关系表 50

3.2.2  将关系类型转换成外键 50

3.2.3  转换多关系类型 53

3.2.4  多值属性转换成关系表 53

3.2.5  弱实体类型转换成关系表 54

3.3  关系表的规范化 55

3.3.1  规范化的基础 55

3.3.2  第一范式(1NF) 56

3.3.3  第二范式(2NF) 58

3.3.4  第三范式(3NF) 59

3.3.5  Boyce-Codd范式(BCNF) 61

3.4  习题 62

第4章  SQL Server数据库管理系统 63

4.1  SQL Server基础 63

4.1.1  SQL Server的版本演进 64

4.1.2  SQL Server的组成元素 64

4.1.3  SQL Server 2012的版本 66

4.2  安装SQL Server 2012 66

4.2.1  SQL Server 2012的

软硬件需求 67

4.2.2  SQL Server实例的安装 68

4.3  SQL Server管理工具的使用 72

4.3.1  SQL Server配置管理器 72

4.3.2  启动Management Studio

集成管理工具 76

4.3.3  Management Studio的

使用界面 77

4.4  查看SQL Server数据库对象 78

4.4.1  系统数据库 78

4.4.2  数据库对象 79

4.5  新增SQL Server用户账户 81

4.5.1  SQL Server用户管理的

基础 81

4.5.2  新增登录 82

4.5.3  新增数据库用户 83

4.6  SQL Server联机丛书 84

4.7  习题 86

第5章  数据库设计工具的使用 87

5.1  数据库设计基础 87

5.1.1  数据库系统开发的

生命周期 87

5.1.2  数据库设计方法论 88

5.1.3  安装数据库设计工具 90

5.2  启动设计工具与新增模型 91

5.2.1  启动与结束

Toad Data Modeler 91

5.2.2  新增模型 92

5.3  新建实体 93

5.3.1  实体的图形符号 93

5.3.2  新建与删除实体 94

5.3.3  新建属性和指定主键 96

5.3.4  编辑属性 98

5.3.5  创建索引 98

5.4  创建关系性 99

5.4.1  关系性的图形符号 100

5.4.2  创建关系性 102

5.4.3  编辑关系性 104

5.4.4  设置引用完整性规则 105

5.4.5  指定新的外键 106

5.5  生成报告和SQL命令 106

5.5.1  生成数据库设计文件 107

5.5.2  生成SQL的DDL命令 109

5.6  习题 110

第6章  SQL语言与数据库创建 111

6.1  SQL语言基础 111

6.1.1  SQL结构化查询语言 111

6.1.2  SQL语言的基本语法 112

6.1.3  SQL语言的命令种类 113

6.1.4  在Management Studio中

执行SQL脚本文件 114

6.2  SQL Server的数据库结构 116

6.2.1  数据库文件与文件组 116

6.2.2  分页 118

6.2.3  范围 118

6.3  创建用户数据库 119

6.3.1  在Management Studio中

创建数据库 119

6.3.2  使用T-SQL命令

创建数据库 121

6.3.3  创建多文件组的数据库 122

6.4  修改用户数据库 124

6.4.1  使用Management Studio修改

用户数据库 125

6.4.2  数据库选项 126

6.4.3  使用T-SQL命令

修改用户数据库 128

6.5  删除用户数据库 130

6.6  数据库的分离与附加 131

6.6.1  分离数据库 131

6.6.2  附加数据库 132

6.6.3  使用T-SQL命令分离与

附加数据库 134

6.7  习题 135

第7章  创建数据表与完整性约束 137

7.1  数据类型 137

7.1.1  数值数据类型 137

7.1.2  日期数据类型 139

7.1.3  字符与位串流数据类型 140

7.1.4  其他数据类型 142

7.1.5  用户自定义数据类型 143

7.2  数据表的创建 143

7.2.1  使用Management Studio

创建数据表 144

7.2.2  使用T-SQL命令

创建数据表 146

7.2.3  创建计算列 148

7.2.4  稀疏字段的使用 149

7.3  创建完整性约束 149

7.3.1  约束的基础 149

7.3.2  创建PRIMARY KEY

约束 150

7.3.3  创建CHECK约束 151

7.3.4  创建数据表的关系性 152

7.4  修改与删除数据表 155

7.4.1  修改数据表名称 156

7.4.2  修改数据表字段 156

7.4.3  修改约束 157

7.4.4  删除数据表 158

7.5  创建SQL Server数据库

关系图 159

7.6  临时表的创建 161

7.7  习题 162

第8章  SELECT语句的基本查询 163

8.1  SELECT查询命令 163

8.2  SELECT子句 164

8.2.1  数据表的字段 164

8.2.2  字段别名 166

8.2.3  计算值字段 166

8.2.4  删除重复记录 168

8.2.5  查询前几笔记录 169

8.3  FROM子句 170

8.4  WHERE子句 170

8.4.1  比较运算符 171

8.4.2  逻辑运算符 172

8.4.3  算术运算符 178

8.5  聚合函数的摘要查询 179

8.5.1  COUNT()函数 179

8.5.2  AVG()函数 180

8.5.3  MAX()函数 181

8.5.4  MIN()函数 181

8.5.5  SUM()函数 182

8.6  分组查询GROUP BY子句 183

8.6.1  GROUP BY子句 183

8.6.2  HAVING子句 184

8.6.3  WITHROLLUP和

WITH CUBE 185

8.6.4  GROUPING SETS子句 187

8.7  排序ORDER BY子句 187

8.8  习题 189

第9章  SELECT语句的高级查询 191

9.1  SQL的多数据表查询 191

9.2  连接查询 192

9.2.1  连接查询的种类 192

9.2.2  内连接查询 194

9.2.3  外连接查询 198

9.2.4  交叉连接查询 201

9.3  集合运算查询 202

9.3.1  集合运算查询的种类 202

9.3.2  UNION并集查询 203

9.3.3  INTERSECT交集查询 204

9.3.4  EXCEPT差集查询 204

9.4  子查询 205

9.4.1  子查询的基础 205

9.4.2  比较运算符的子查询 206

9.4.3  逻辑运算符的子查询 206

9.5  T-SQL高级查询技巧 210

9.5.1  OFFSET和FETCH NEXT的

分页查询 210

9.5.2  NULL空值的处理 212

9.5.3  CTE一般数据表表达式 213

9.6  使用Management Studio设计

SQL查询 216

9.6.1  使用查询设计工具 216

9.6.2  编写数据表的脚本 220

9.7  习题 221

第10章  新增、更新和删除数据 223

10.1  使用Management Studio

编辑记录数据 223

10.2  新增记录 225

10.2.1  INSERT命令 225

10.2.2  行构造器 227

10.2.3  INSERT/SELECT

命令 227

10.2.4  SELECT INTO命令 228

10.3  更新记录 229

10.3.1  UPDATE命令 229

10.3.2  在UPDATE命令

使用子查询 230

10.3.3  合并更新 231

10.4  删除记录 232

10.4.1  DELETE命令 232

10.4.2  子查询与合并删除 233

10.4.3  TRUNCATE TABLE

命令 234

10.5  MERGE命令 235

10.6  DML命令的OUTPUT

子句 238

10.7  习题 240

第11章  视图的创建 241

11.1  视图基础 241

11.1.1  SQL Server视图 241

11.1.2  视图的种类 242

11.1.3  视图的优缺点 242

11.2  创建视图 243

11.2.1  使用Management Studio

创建视图 243

11.2.2  使用T-SQL命令

创建视图 246

11.2.3  从其他视图创建视图 251

11.3  修改与删除视图 251

11.3.1  修改视图 251

11.3.2  删除视图 253

11.4  编辑视图的内容 254

11.4.1  在视图中添加记录 255

11.4.2  在视图中更新记录 256

11.4.3  在视图中删除记录 257

11.5  习题 258

第12章  规划与创建索引 259

12.1  索引基础 259

12.1.1  索引简介 260

12.1.2  索引的种类 260

12.1.3  M路搜索树与B树 261

12.1.4  SQL Server的

索引结构 262

12.2  数据表的索引规划 263

12.2.1  索引的优缺点 264

12.2.2  创建索引的注意事项 264

12.2.3  选择索引字段 265

12.3  SQL Server自动创建的

索引 265

12.3.1  PRIMARY KEY字段的

索引 265

12.3.2  UNIQUE字段的索引 267

12.4  创建数据表的索引 267

12.4.1  使用Management Studio

创建索引 268

12.4.2  使用T-SQL命令

创建索引 271

12.5  修改、重新生成与

删除索引 272

12.5.1  使用Management Studio

修改与重新生成数据表的

索引 272

12.5.2  使用T-SQL命令修改与

重新生成索引 274

12.5.3  删除数据表的索引 275

12.6  查看SQL Server的

执行计划 275

12.7  创建视图与计算列的

索引 276

12.7.1  创建计算列的索引 276

12.7.2  创建视图索引 278

12.8  筛选索引与列存放区

索引 281

12.8.1  筛选索引 281

12.8.2  列存放区索引 282

12.9  习题 284

第13章  Transact-SQL程序设计 285

13.1  Transact-SQL语言基础 285

13.1.1  Transact-SQL 

数据库语言 286

13.1.2  Transact-SQL 

脚本文件 286

13.2  批处理的使用 287

13.2.1  批处理的基础 287

13.2.2  使用GO命令

定义批处理 287

13.3  批注与自定义信息 288

13.3.1  批注 288

13.3.2  PRINT命令输出

自定义信息 289

13.3.3  USE命令转换数据库 289

13.4  变量的声明与使用 290

13.4.1  声明变量与变量初值 290

13.4.2  指定变量值 291

13.4.3  变量的范围 295

13.4.4  SQL Server的

系统函数 295

13.5  表达式与运算符 296

13.5.1  运算符的优先级 296

13.5.2  T-SQL的运算符 297

13.5.3  简洁的T-SQL表达式 298

13.5.4  类型转换运算符 299

13.6  流程控制结构 299

13.6.1  BEGIN/END命令块 300

13.6.2  IF/ELSE条件

控制命令 300

13.6.3  RETURN中断

查询命令 302

13.6.4  CASE多条件函数 303

13.6.5  WHILE循环控制 305

13.6.6  GOTO跳转至

指定标签 307

13.6.7  WAITFOR暂停执行 308

13.6.8  IIF与CHOOSE函数 309

13.7  错误处理 311

13.7.1  错误处理结构 311

13.7.2  使用RAISERROR()

函数产生错误信息 312

13.7.3  THROW命令语句 314

13.8  生成SQL Server脚本 315

13.8.1  编写数据库的脚本 315

13.8.2  生成SQL Server 

脚本向导 317

13.9  习题 320

第14章  存储过程与序列对象 321

14.1  存储过程基础 321

14.1.1  存储过程简介 321

14.1.2  存储过程的优点 322

14.2  创建与执行存储过程 323

14.2.1  创建存储过程 323

14.2.2  执行存储过程 325

14.2.3  创建临时存储过程 327

14.3  存储过程的参数传递 328

14.3.1  创建拥有参数的

存储过程 328

14.3.2  默认值参数 330

14.3.3  嵌套调用 331

14.4  存储过程的返回值 332

14.4.1  使用RETURN

关键词 332

14.4.2  使用OUTPUT

关键词 334

14.5  修改与删除存储过程 335

14.5.1  修改存储过程 335

14.5.2  删除存储过程 336

14.6  系统存储过程 336

14.7  创建与使用序列对象 338

14.7.1  创建序列对象 338

14.7.2  使用序列对象 341

14.7.3  修改与删除序列对象 342

14.8  习题 343

第15章  自定义函数与数据游标 345

15.1  自定义函数基础 345

15.2  创建自定义函数 346

15.2.1  标量值函数 347

15.2.2  内联表值函数 349

15.2.3  多语句数据表值函数 351

15.3  自定义函数的使用 352

15.3.1  使用在条件约束或

字段属性 352

15.3.2  创建计算字段 354

15.3.3  使用在流程控制与

表达式 355

15.3.4  替换视图和临时表 355

15.4  修改与删除自定义函数 356

15.4.1  修改自定义函数 356

15.4.2  删除自定义函数 357

15.5  使用数据游标 357

15.5.1  数据游标的基础 357

15.5.2  使用数据游标的步骤 358

15.5.3  数据游标的系统函数 361

15.5.4  使用数据游标更新与删除

数据 363

15.5.5  数据游标变量与参数 365

15.6  习题 366

第16章  触发器 367

16.1  触发器基础 367

16.2  DML触发器 368

16.2.1  创建DML触发器 369

16.2.2  DML触发器与约束 371

16.2.3  创建AFTER触发器 372

16.2.4  创建INSTEAD OF

触发器 376

16.2.5  使用UPDATE()函数 379

16.3  修改、禁用与删除DML

触发器 380

16.3.1  修改触发器 381

16.3.2  禁用触发器 382

16.3.3  删除触发器 383

16.4  DDL触发器 383

16.5  习题 384

第17章  事务处理与锁定 387

17.1  事务基础 387

17.1.1  事务简介 387

17.1.2  事务状态 388

17.1.3  事务停止执行的原因 389

17.1.4  事务的四大特性 390

17.2  事务处理 390

17.2.1  SQL Server的

事务模式 390

17.2.2  T-SQL语言的

事务处理 391

17.2.3  嵌套事务 393

17.2.4  事务储存点 394

17.3  并发控制 395

17.3.1  并发控制的三种问题 395

17.3.2  并发控制机制 396

17.3.3  事务的隔离性等级 397

17.4  数据锁定 398

17.4.1  锁定层级 399

17.4.2  锁定模式 399

17.4.3  锁定模式兼容性 400

17.5  死锁问题 401

17.5.1  死锁的基础 401

17.5.2  指定死锁的优先级 401

17.5.3  预防死锁的程序技巧 401

17.6  习题 402

第18章  SQL Server客户端

程序开发与LINQ 403

18.1  数据库程序设计基础 403

18.1.1  数据库程序设计的

程序语言 403

18.1.2  数据库程序设计的

操作 404

18.2  中间件与ADO.NET组件 404

18.2.1  微软的中间件 404

18.2.2  ADO.NET的基础 405

18.3  Visual Basic创建客户端

程序 407

18.3.1  DataSet对象与数据

绑定 407

18.3.2  事务处理 411

18.4  LINQ基础 416

18.5  使用LINQ to SQL 417

18.5.1  创建LINQ to SQL

项目 417

18.5.2  实现LINQ to SQL 419

18.6  LINQ查询字句 421

18.6.1  Select子句 422

18.6.2  Where子句 422

18.6.3  Order By子句 423

18.6.4  Join子句 423

18.7  习题 424

第19章  FILESTREAM、FileTable

与XML 425

19.1  FILESTREAM文件

数据流 425

19.1.1  FILESTREAM文件

数据流的基础 425

19.1.2  启用FILESTREAM文件

数据流的支持 426

19.1.3  创建FILESTREAM

文件组 427

19.1.4  创建FILESTREAM

数据表 428

19.1.5  访问FILESTREAM

数据 429

19.2  FileTable文件数据表 430

19.2.1  FileTable文件数据表的

基础 430

19.2.2  创建FileTable文件

数据表 431

19.2.3  在FileTable文件数据表

新增数据 433

19.3  使用XML数据类型 435

19.3.1  创建拥有XML字段的

数据表 436

19.3.2  XML对象的相关方法 438

19.4  XML查询语言 439

19.4.1  XPath语言 439

19.4.2  XQuery语言 445

19.4.3  XQuery基本语法 447

19.4.4  XQuery的FLWOR

表达式 448

19.4.5  XQuery的条件表达式 450

19.4.6  XQuery函数 451

19.5  XML-DML操作语言 452

19.5.1  插入XML元素 452

19.5.2  更新XML元素 453

19.5.3  删除XML元素 453

19.6  习题 454

第20章  SQL Server全文搜索 455

20.1  SQL Server全文搜索概述 455

20.1.1  全文搜索的基础 456

20.1.2  SQL Server整合全文

搜索架构 456

20.1.3  启用SQL Server的

全文搜索 457

20.2  全文的创建 458

20.2.1  使用Management Studio

创建全文 458

20.2.2  使用T-SQL命令创建

全文 460

20.3  创建全文索引 460

20.3.1  使用Management Studio

创建全文索引 460

20.3.2  使用T-SQL命令

创建全文索引 464

20.4  修改与删除全文与

索引 465

20.4.1  修改全文 466

20.4.2  修改与禁用全文索引 467

20.4.3  删除全文索引 468

20.4.4  删除全文 469

20.5  填充的使用 469

20.5.1  在SQL Server中

执行填充 469

20.5.2  创建填充计划 471

20.6  使用全文搜索 473

20.6.1  使用FREETEXT 

执行搜索 473

20.6.2  使用CONTAINS 

执行单词搜索 474

20.6.3  全文检索的符合

程度搜索 477

20.7  习题 479

 

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个