书籍详情
《跟韩老师学SQLServer数据库设计与开发韩立刚水利水电》[32M]百度网盘|亲测有效|pdf下载
  • 跟韩老师学SQLServer数据库设计与开发韩立刚水利水电

  • 出版社:万卷出版公司图书专营店
  • 出版时间:2017-04
  • 热度:4607
  • 上架时间:2024-06-30 09:08:33
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

   图书基本信息
图书名称   跟韩老师学SQL Server数据库设计与开发
作者   韩立刚
定价   58元
出版社   水利水电出版社
ISBN   9787517051824
出版日期   2017-04-01
字数   398000
页码   288
版次   
装帧   平装
开本   16开
商品重量   

   内容提要
在软件设计和开发过程中,需求分析确定后,在开发软件前就需要先设计数据库,然后再编写代码。
韩立刚主编的这本《跟韩老师学SQL Server数据库设计与开发》讲解的内容是软件开发人员必须要掌握的技术,先讲解如何根据项目的需求按关系型数据库设计规范设计数据库中的表,然后使用自己设计的数据库来学习SQL语句。
本书完整地讲述了SQL语句中使用的变量、数据类型、注释行、运算符、常用函数,以及流程控制语句。从单表查询讲起,讲解使用WHERE筛选行将查询的结果分组、排序,然后讲解多表查询和数据汇总,讲解多表交叉联结、内联结、外联结、自联结,使用 UNION合并查询结果集,使用聚合函数汇总查询结果,接着讲解了子查询、开窗函数和行列转换技术,实现数据完整性,创建和使用索引优化性能,在数据库中创建和使用视图简化查询,使用存储过程操作数据库,创建用户自定义函数,在SQL语句中使用自定义函数,使用触发器实现复杂的业务逻辑,使用事务实现数据的完整性和一致性。

   目录

前言

章 关系数据库 /1

1.1 关系模型基本概念 /1

1.2 E-R模型到关系模型的转化 /3

1.3 数据库设计规范 /6

1.3.1 范式(1NF) /6

1.3.2 第二范式(2NF) /7

1.3.3 第三范式(3NF) /8

第2章 Transact-SQL概述 /10

2.1 启动SQLServer Management Studio(SSMS) /10

2.2 T-SQL语句的类型 /12

2.2.1 DDL语句 /12

2.2.2 DCL语句 /13

2.2.3 DML /14

2.3 T-SQL语法要素 /16

2.3.1 SQL语句的批处理符号GO /16

2.3.2 EXEC /17

2.3.3 注释符 /17

2.3.4 标识符 /18

2.4 变量 /19

2.5 数据类型 /21

2.5.1 字符串类型 /21

2.5.2 Unicode字符串类型 /23

2.5.3 日期时间类型 /23

2.5.4 数值类型 /23

2.6 运算符 /25

2.6.1 算术运算符 /25

2.6.2 比较运算符 /25

2.6.3 逻辑运算符 /25

2.6.4 连接运算符 /26

2.7 常用函数 /26

2.7.1 聚合函数 /27

2.7.2 数值函数 /28

2.7.3 字符串函数 /29

2.7.4 日期时间函数 /30

2.7.5 数据类型转换函数 /31

2.7.6 控制NULL的常用函数 /32

2.8 流程控制语句 /32

2.8.1 条件判断语句IF…ELSE和CASE /33

2.8.2 循环语句 /35

第3章 查询基础 /36

3.1 简单查询逻辑处理过程 /36

3.2 数据库对象的引用规则 /39

3.3 指定表的返回列来筛选列 /40

3.4 使用WHERE筛选行 /41

3.4.1 使用比较运算符过滤数据 /41

3.4.2 搜索范围内的值 /41

3.4.3 使用IN指定列表搜索条件 /42

3.4.4 使用LIKE关键字进行模糊匹配 /42

3.4.5 使用NULL比较搜索条件 /43

3.4.6 筛选时影响性能的注意事项 /44

3.5 格式化结果集 /44

3.5.1 在选择列表中使用常量、函数和表达式 /44

3.5.2 使用别名 /45

3.5.3 使用ORDERBY子句对结果排序 /46

3.5.4 使用TOP限制结果集 /48

3.5.5 使用DISTINCT消除重复行 /50

3.6 使用GROUPBY子句和聚集函数进行分组计算 /51

3.6.1 在查询中使用聚集函数 /51

3.6.2 GROUP BY使用基础 /52

3.6.3 使用HAVING子句筛选分组后的数据 /53

第4章 多表联接查询和数据汇总 /55

4.1 联接基础知识 /55

4.1.1 在FROM子句中联接 /56

4.1.2 在WHERE子句中联接 /56

4.2 交叉联接 /57

4.3 内联接 /57

4.4 外联接 /59

4.4.1 左外联接 /59

4.4.2 右外联接 /60

4.4.3 完全外部联接 /60

4.5 自联接 /62

4.5.1 使用同一列进行自联接 /62

4.5.2 使用不同列进行自联接 /62

4.6 联接查询的逻辑处理过程 /64

4.7 多表联接查询 /64

4.8 UNION合并结果集 /64

4.8.1 UNION和UNIONALL /65

4.8.2 对合并结果集进行排序 /66

4.8.3 结果集的合并顺序 /66

4.9 汇总数据 /67

4.9.1 ROLLUP /67

4.9.2 CUBE /70

4.9.3 使用GROUPING SETS /70

4.9.4 GROUPING查看汇总行并区分NULL /71

第5章 子查询 /73

5.1 独立子查询 /73

5.1.1 独立标量子查询 /74

5.1.2 独立多值子查询 /74

5.2 相关子查询 /75

5.3 使用IN(NOT IN)和EXISTS(NOT EXISTS)谓词 /76

5.3.1 IN和NOT IN /77

5.3.2 EXISTS和NOT EXISTS /77

5.4 表表达式 /81

5.4.1 派生表 /81

5.4.2 公用表表达式(CTE)/84

第6章 开窗函数和行列转换 /89

6.1 窗口和开窗函数 /89

6.2 排名窗口函数 /90

6.2.1 使用ROW_NUMBER进行分区编号 /91

6.2.2 使用RANK和DENSE_RANK进行分区排名 /94

6.2.3 使用NTILE进行数据分组 /96

6.3 聚合窗口函数 /97

6.4 行列转换 /100

6.4.1 行转列 /100

6.4.2 列转行 /105

第7章 数据修改 /109

7.1 插入数据 /109

7.1.1 使用INSERT和VALUES插入数据/109

7.1.2 使用SELECT INTO插入数据 /110

7.1.3 使用INSERT和SELECT插入数据/111

7.2 删除数据 /112

7.2.1 使用DELETE删除行 /112

7.2.2 使用TRUNCATE TABLE删除所有行 /113

7.3 更新数据 /113

7.3.1 使用SET和WHERE更新数据 /113

7.3.2 更新基于其他表的数据 /113

7.4 使用MERGE合并数据 /114

7.5 通过表表达式修改数据 /118

第8章 数据完整性 /121

8.1 数据完整性的类型和实现方式 /121

8.1.1 域完整性及实现方式 /122

8.1.2 实体完整性及实现方式 /122

8.1.3 参照完整性及实现方式 /122

8.2 实现实体完整性 /124

8.2.1 使用主键 /124

8.2.2 使用UNIQUE约束 /127

8.2.3 使用自增列 /127

8.3 实现域完整性 /131

8.3.1 CHECK约束 /131

8.3.2 DEFAULT约束 /132

8.3.3 NOT NULL定义 /133

8.4 参照完整性 /134

8.4.1 实现表间列的参照完整性 /134

8.4.2 实现表内列的参照完整性 /137

8.5 使用关系图实现参照完整性 /138

8.6 使约束失效 /141

8.7 使用图形界面实现数据完整性 /141

8.7.1 添加主键 /141

8.7.2 设置UNIQUE约束 /142

8.7.3 设置CHECK约束 /142

8.7.4 设置默认值约束 /144

8.7.5 设置外键 /145

8.7.6 禁用约束 /147

第9章 索引 /148

9.1 数据的存储方式 /149

9.1.1 页(Page) /149

9.1.2 区(Extent) /152

9.1.3 索引分配映射页(IAM页)/152

9.1.4 估算表的大小 /153

9.2 B树(Balanced Tree) /154

9.3 查看页内容的工具 /156

9.3.1 DBCC IND /156

9.3.2 DBCC PAGE /158

9.4 堆(Heaps) /160

9.5 聚集索引 /162

9.5.1 约束与索引的关系 /162

9.5.2 聚集索引的物理结构 /163

9.5.3 不聚集索引的物理结构 /167

9.5.4 使用聚集索引查找数据的执行计划 /168

9.6 非聚集索引及其物理结构 /169

9.6.1 在堆中的非聚集索引 /169

9.6.2 在聚集表中的非聚集索引 /172

9.6.3 使用非聚集索引查找数据的执行计划 /175

9.7 修改数据对索引结构的影响 /176

9.7.1 页拆分和行移动现象 /176

9.7.2 插入行 /178

9.7.3 删除行 /179

9.7.4 更新行 /180

9.8 碎片和索引维护 /180

9.8.1 碎片 /180

9.8.2 维护索引 /182

9.9 复合索引 /187

9.10 包含列索引 /188

9.11 索引交叉 /188

9.12 筛选索引 /189

9.13 全文搜索 /190

9.13.1 创建和修改全文目录 /191

9.13.2 创建全文索引 /191

9.13.3 全文搜索的查询方法 /192

9.14 统计信息 /194

9.14.1 了解统计信息的作用 /194

9.14.2 查看和分析统计信息 /195

9.14.3 创建统计信息 /198

9.14.4 更新统计信息 /198

9.14.5 同步和异步统计信息更新 /200

9.15 基于索引设计的考虑 /200

0章 视图 /202

10.1 视图简介 /202

10.2 使用标准视图 /204

10.2.1 创建标准视图 /204

10.2.2 通过视图更新数据 /206

10.2.3 修改和删除视图 /208

10.3 视图选项 /209

10.3.1 使用ENCRYPTION选项 /209

10.3.2 使用SCHEMABINDING选项 /210

10.3.3 使用CHECK OPTION选项 /211

10.4 使用索引视图 /212

10.4.1 创建索引视图 /213

10.4.2 索引视图的性能 /213

10.4.3 更新索引视图 /214

10.5 视图的优点 /215

1章 存储过程 /216

11.1 存储过程的类型 /216

11.1.1 系统存储过程 /217

11.1.2 扩展存储过程 /217

11.1.3 用户自定义存储过程 /217

11.2 SQL存储过程 /218

11.2.1 创建无参数的存储过程 /218

11.2.2 修改和删除存储过程 /220

11.2.3 创建带参数的存储过程 /221

11.2.4 获取存储过程的执行结果 /223

11.3 存储过程示例分析 /224

11.4 存储过程的解析特点 /225

11.5 存储过程的编译、重编译 /226

11.6 使用存储过程的优缺点 /227

2章 用户自定义函数 /229

12.1 UDF简介 /229

12.2 标量UDF /230

12.3 内联表值函数 /232

12.4 多语句表值函数 /233

12.5 UDF的修改和删除 /235

12.6 UDF的调用分析 /235

3章 触发器 /239

13.1 触发器的概念和分类 /239

13.2 DML触发器 /240

13.2.1 两张特殊的临时表 /240

13.2.2 insert触发器 /241

13.2.3 delete触发器 /242

13.2.4 update触发器 /244

13.2.5 禁用和启用触发器 /244

13.2.6 检测基于列修改的触发器 /244

13.2.7 FIRST触发器和LAST触发器 /245

13.3 使用触发器实现审核跟踪 /246

13.4 DML触发器的工作原理和事务控制 /246

13.4.1 触发器的工作原理 /247

13.4.2 DML触发器的事务控制 /248

13.5 DDL触发器 /249

13.5.1 创建数据库级别的DDL触发器/249

13.5.2 创建服务器级别的DDL触发器/250

4章 事务和锁 /251

14.1 事务 /251

14.1.1 显式事务处理模式 /252

14.1.2 自动提交事务模式 /253

14.1.3 隐式事务处理模式 /253

14.1.4 嵌套事务的控制 /254

14.1.5 事务、事务日志和检查点 /255

14.2 并发访问引起的问题 /257

14.3 锁 /260

14.3.1 锁的粒度和锁升级 /260

14.3.2 锁的类型和查看锁 /261

14.3.3 锁的兼容性 /265

14.4 设置事务隔离级别 /266

14.4.1 SQL标准定义的4种事务隔离级别 /266

14.4.2 行版本的事务隔离级别 /271

14.5 隔离级别、锁和并发问题的关系 /274

14.6 死锁 /275

前言

章 关系数据库 /1

1.1 关系模型基本概念 /1

1.2 E-R模型到关系模型的转化 /3

1.3 数据库设计规范 /6

1.3.1 范式(1NF) /6

1.3.2 第二范式(2NF) /7

1.3.3 第三范式(3NF) /8

第2章 Transact-SQL概述 /10

2.1 启动SQLServer Management Studio(SSMS) /10

2.2 T-SQL语句的类型 /12

2.2.1 DDL语句 /12

2.2.2 DCL语句 /13

2.2.3 DML /14

2.3 T-SQL语法要素 /16

2.3.1 SQL语句的批处理符号GO /16

2.3.2 EXEC /17

2.3.3 注释符 /17

2.3.4 标识符 /18

2.4 变量 /19

2.5 数据类型 /21

2.5.1 字符串类型 /21

2.5.2 Unicode字符串类型 /23

2.5.3 日期时间类型 /23

2.5.4 数值类型 /23

2.6 运算符 /25

2.6.1 算术运算符 /25

2.6.2 比较运算符 /25

2.6.3 逻辑运算符 /25

2.6.4 连接运算符 /26

2.7 常用函数 /26

2.7.1 聚合函数 /27

2.7.2 数值函数 /28

2.7.3 字符串函数 /29

2.7.4 日期时间函数 /30

2.7.5 数据类型转换函数 /31

2.7.6 控制NULL的常用函数 /32

2.8 流程控制语句 /32

2.8.1 条件判断语句IF…ELSE和CASE /33

2.8.2 循环语句 /35

第3章 查询基础 /36

3.1 简单查询逻辑处理过程 /36

3.2 数据库对象的引用规则 /39

3.3 指定表的返回列来筛选列 /40

3.4 使用WHERE筛选行 /41

3.4.1 使用比较运算符过滤数据 /41

3.4.2 搜索范围内的值 /41

3.4.3 使用IN指定列表搜索条件 /42

3.4.4 使用LIKE关键字进行模糊匹配 /42

3.4.5 使用NULL比较搜索条件 /43

3.4.6 筛选时影响性能的注意事项 /44

3.5 格式化结果集 /44

3.5.1 在选择列表中使用常量、函数和表达式 /44

3.5.2 使用别名 /45

3.5.3 使用ORDERBY子句对结果排序 /46

3.5.4 使用TOP限制结果集 /48

3.5.5 使用DISTINCT消除重复行 /50

3.6 使用GROUPBY子句和聚集函数进行

分组计算 /51

3.6.1 在查询中使用聚集函数 /51

3.6.2 GROUP BY使用基础 /52

3.6.3 使用HAVING子句筛选分组后的数据 /53

第4章 多表联接查询和数据汇总 /55

4.1 联接基础知识 /55

4.1.1 在FROM子句中联接 /56

4.1.2 在WHERE子句中联接 /56

4.2 交叉联接 /57

4.3 内联接 /57

4.4 外联接 /59

4.4.1 左外联接 /59

4.4.2 右外联接 /60

4.4.3 完全外部联接 /60

4.5 自联接 /62

4.5.1 使用同一列进行自联接 /62

4.5.2 使用不同列进行自联接 /62

4.6 联接查询的逻辑处理过程 /64

4.7 多表联接查询 /64

4.8 UNION合并结果集 /64

4.8.1 UNION和UNIONALL /65

4.8.2 对合并结果集进行排序 /66

4.8.3 结果集的合并顺序 /66

4.9 汇总数据 /67

4.9.1 ROLLUP /67

4.9.2 CUBE /70

4.9.3 使用GROUPINGSETS /70

4.9.4 GROUPING查看汇总行并区分NULL /71

第5章 子查询 /73

5.1 独立子查询 /73

5.1.1 独立标量子查询 /74

5.1.2 独立多值子查询 /74

5.2 相关子查询 /75

5.3 使用IN(NOT IN)和EXISTS(NOT EXISTS)谓词 /76

5.3.1 IN和NOTIN /77

5.3.2 EXISTS和NOTEXISTS /77

5.4 表表达式 /81

5.4.1 派生表 /81

5.4.2 公用表表达式(CTE)/84

第6章 开窗函数和行列转换 /89

6.1 窗口和开窗函数 /89

6.2 排名窗口函数 /90

6.2.1 使用ROW_NUMBER进行分区编号 /91

6.2.2 使用RANK和DENSE_RANK进行分区排名 /94

6.2.3 使用NTILE进行数据分组 /96

6.3 聚合窗口函数 /97

6.4 行列转换 /100

6.4.1 行转列 /100

6.4.2 列转行 /105

第7章 数据修改 /109

7.1 插入数据 /109

7.1.1 使用INSERT和VALUES插入数据/109

7.1.2 使用SELECTINTO插入数据 /110

7.1.3 使用INSERT和SELECT插入数据/111

7.2 删除数据 /112

7.2.1 使用DELETE删除行 /112

7.2.2 使用TRUNCATETABLE删除所有行 /113

7.3 更新数据 /113

7.3.1 使用SET和WHERE更新数据/113

7.3.2 更新基于其他表的数据 /113

7.4 使用MERGE合并数据 /114

7.5 通过表表达式修改数据 /118

第8章 数据完整性 /121

8.1 数据完整性的类型和实现方式 /121

8.1.1 域完整性及实现方式 /122

8.1.2 实体完整性及实现方式 /122

8.1.3 参照完整性及实现方式 /122

8.2 实现实体完整性 /124

8.2.1 使用主键 /124

8.2.2 使用UNIQUE约束 /127

8.2.3 使用自增列 /127

8.3 实现域完整性 /131

8.3.1 CHECK约束 /131

8.3.2 DEFAULT约束 /132

8.3.3 NOT NULL定义 /133

8.4 参照完整性 /134

8.4.1 实现表间列的参照完整性 /134

8.4.2 实现表内列的参照完整性 /137

8.5 使用关系图实现参照完整性 /138

8.6 使约束失效 /141

8.7 使用图形界面实现数据完整性 /141

8.7.1 添加主键 /141

8.7.2 设置UNIQUE约束 /142

8.7.3 设置CHECK约束 /142

8.7.4 设置默认值约束 /144

8.7.5 设置外键 /145

8.7.6 禁用约束 /147

第9章 索引 /148

9.1 数据的存储方式 /149