当前位置:首页 > 工业技术
Microsoft SQL Server 2008技术内幕  T-SQL查询
Microsoft SQL Server 2008技术内幕  T-SQL查询

Microsoft SQL Server 2008技术内幕 T-SQL查询PDF电子书下载

工业技术

  • 电子书积分:17 积分如何计算积分?
  • 作 者:(美)本·甘,(美)科拉尔,(美)萨尔卡,(美)卡斯著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2010
  • ISBN:9787121117350
  • 页数:586 页
图书介绍:本书全面深入地介绍了Microsoft SQL Server 2008中高级T-SQL查询、性能优化等方面的内容,以及新增加的一些特性。主要内容包括SQL的基础理论、查询优化、查询算法及复杂度,以及在使用子查询、表表达式、排名函数、数据聚合和透视转换、TOP和APPLY、数据修改、分区表、特殊数据结构等实际应用时会遇到的各种高级查询问题和解决方案。作为一本讲述T-SQL高级查询的专业图书,本书旨在结合实践中的各种常见问题,教读者如何用SQL作为语言工具来思考问题,揭示基于集合查询的强大威力。
《Microsoft SQL Server 2008技术内幕 T-SQL查询》目录

第1章 逻辑查询处理 1

1.1 逻辑查询处理的各个阶段 2

1.1.1 逻辑查询处理阶段简介 2

1.2 客户/订单场景下的查询示例 4

1.3 逻辑查询处理阶段详解 5

1.3.1 步骤1:FROM阶段 5

1.3.2 步骤2:WHERE阶段 9

1.3.3 步骤3:GROUP BY阶段 10

1.3.4 步骤4:HAVING阶段 11

1.3.5 步骤5:SELECT阶段 12

1.3.6 步骤6:排序用的ORDER BY阶段 13

1.4 逻辑查询处理的深入内容 16

1.4.1 表运算符 16

1.4.2 OVER子句 23

1.4.3 集合运算符 25

1.5 总结 26

第2章 集合论和谓词逻辑 27

2.1 自然语言表述到数学表示的转换 27

2.1.1 严格定义(well-Definedness) 28

2.1.2 相等、恒等和同一性 30

2.1.3 数学命名约定 30

2.1.4 数字 31

2.1.5 上下文 32

2.1.6 函数、参数和变量 33

2.1.7 指令和算法 34

2.2 集合论 34

2.2.1 集合的标记方法 35

2.2.2 集合的严格定义 36

2.2.3 论域 36

2.2.4 真实性 38

2.2.5 罗素悖论(Russell's Paradox) 40

2.2.6 有序对、元组和笛卡尔积 41

2.2.7 空集 42

2.2.8 集合的特征函数 43

2.2.9 集合的基数(Cardinality) 43

2.2.10 顺序 44

2.2.11 集合运算符 47

2.2.12 集合的划分(Partition) 49

2.2.13 集合论的推广 50

2.3 谓词逻辑 50

2.3.1 编程语言中的逻辑功能 50

2.3.2 命题和谓词 51

2.3.3 排中律 53

2.3.4 与、或、非运算 53

2.3.5 逻辑等价 55

2.3.6 逻辑蕴含 55

2.3.7 量化(Quantification) 56

2.3.8 替代和推广 58

2.4 关系 59

2.4.1 自反性、对称性和传递性 59

2.5 一个实际的应用 60

2.6 总结 63

第3章 关系模型 65

3.1 关系模型简介 65

3.1.1 关系、元组和类型 65

3.1.2 关系模型:快速摘要 70

3.2 关系代数和关系计算 70

3.2.1 基本运算符 71

3.2.2 关系代数 71

3.2.3 关系演算 79

3.2.4 T-SQL支持 80

3.3 数据完整性 81

3.3.1 声明式约束 82

3.3.2 实施完整性的其他方法 84

3.4 数据库正规化和其他设计主题 86

3.4.1 解决函数依赖的范式 87

3.4.2 更高级的范式 92

3.4.3 反规范化(Denormalization) 95

3.4.4 一般化和特殊化 96

3.5 总结 98

第4章 查询优化 99

4.1 本章用到的样本数据 99

4.2 优化方法论 102

4.2.1 分析实例级别的等待 104

4.2.2 关联等待和队列 111

4.2.3 确定行动方案 112

4.2.4 细化到数据库/文件级别 113

4.2.5 细化到进程级别 115

4.2.6 优化索引和查询 132

4.3 查询优化的工具 133

4.3.1 查询执行计划的缓存 133

4.3.2 清空缓存 134

4.3.3 动态管理对象 134

4.3.4 STATISTICS IO 135

4.3.5 测量查询的运行时间 135

4.3.6 分析执行计划 136

4.3.7 提示(Hint) 144

4.3.8 跟踪/Profiler 145

4.3.9 数据库引擎优化顾问 145

4.3.10 数据收集和管理数据仓库 146

4.3.11 使用SMO来复制统计信息 146

4.4 索引优化 146

4.4.1 表和索引的结构 146

4.4.2 索引访问方法 153

4.4.3 索引策略的分析 191

4.4.4 碎片 200

4.4.5 分区 201

4.5 准备样本数据 202

4.5.1 数据准备 202

4.5.2 TABLESAMPLE 206

4.6 基于集合的方法和迭代/过程方法的比较,以及一个优化练习 208

4.7 总结 214

第5章 算法和复杂性 215

5.0.1 你有一个1夸特的硬币吗? 215

5.1 如何度量算法(How Algorithms Scale) 217

5.1.1 二次缩放(Quadratic Scaling)的一个例子 217

5.1.2 具有线性复杂度的算法 218

5.1.3 指数和超指数复杂度 218

5.1.4 次线性(sublinear)复杂度 219

5.1.5 常量复杂度 219

5.1.6 复杂度的技术定义 220

5.1.7 复杂度的比较 221

5.2 经典算法和算法策略 222

5.2.1 排序算法 223

5.2.2 字符串查找 225

5.3 一个实际的应用程序 226

5.3.1 识别测量数据的趋势 226

5.3.2 LISLP算法的复杂度 226

5.3.3 用T-SQL解决最长上升子序列的长度问题 227

5.4 总结 229

第6章 子查询、表表达式和排名函数 231

6.1 子查询 232

6.1.1 独立子查询 232

6.1.2 相关子查询 235

6.1.3 行为不当的子查询 244

6.1.4 不常用的谓词 245

6.2 表表达式(Table Expressions) 246

6.2.1 派生表 247

6.2.2 公用表表达式 249

6.3 分析排名函数 255

6.3.1 行号 257

6.3.2 排名和密集排名(Dense Rank) 271

6.3.3 组号(Tile Number) 272

6.4 数字辅助表 276

6.5 缺失范围和现有范围(也称为间断和孤岛) 279

6.5.1 缺失范围(间断) 281

6.5.2 现有范围(孤岛) 288

6.6 总结 296

第7章 联接和集合运算 297

7.1 联接 297

7.1.1 旧语法和新语法 297

7.1.2 基本联接类型 298

7.1.3 其他的联接分类 306

7.1.4 上一年度的滑动合计 317

7.1.5 联接算法 320

7.1.6 拆分元素 326

7.2 集合运算 332

7.2.1 UNION 332

7.2.2 EXCEPT 333

7.2.3 INTERSECT 334

7.2.4 集合运算的优先级 335

7.2.5 在集合运算中使用INTO 336

7.2.6 避开不支持的逻辑阶段 336

7.3 总结 338

第8章 数据聚合和透视 339

8.1 OVER子句 339

8.2 决胜属性(Tiebreaker) 341

8.3 连续聚合 343

8.3.1 累积聚合(Cmulative Aggregation) 344

8.3.2 滑动聚合(Sliding Aggregation) 348

8.3.3 年初至今(YTD) 349

8.4 透视转换(Pivoting) 350

8.4.1 透视转换属性 350

8.4.2 关系除法 353

8.4.3 聚合数据 355

8.5 逆透视转换 357

8.6 自定义聚合 360

8.6.1 使用透视转换的自定义聚合 361

8.6.2 用户定义聚合函数(UDA,User Defined Aggregate) 362

8.6.3 专用解决方案 370

8.7 直方图(Histogram) 380

8.8 分组因子 383

8.9 分组集 385

8.9.1 样例数据 386

8.9.2 GROUPING SETS从属子句 387

8.9.3 CUBE从属子句 389

8.9.4 ROLLUP从属子句 390

8.9.5 分组集代数 392

8.9.6 GROUPING_ID函数 395

8.9.7 保存分组集 397

8.9.8 排序 399

8.10 总结 400

第9章 TOP和APPLY 401

9.1 SELECT TOP 401

9.1.1 TOP和确定性 402

9.1.2 TOP和输入表达式 403

9.1.3 TOP和修改 404

9.1.4 增强的TOP 406

9.2 APPLY 407

9.3 使用TOP和APPLY解决常见问题 408

9.3.1 每组中的TOP n 408

9.3.2 匹配当前值和前一个值 413

9.3.3 分页 416

9.3.4 随机行 419

9.3.5 中值(Median) 421

9.4 逻辑转换 422

9.5 总结 424

第10章 数据修改 425

10.1 插入数据 425

10.1.1 增强的VALUES子句 425

10.1.2 SELECT INTO 426

10.1.3 BULK行集提供程序 428

10.1.4 按最小方式记录日志的操作 430

10.1.5 INSERT EXEC 447

10.1.6 序列机制 450

10.1.7 全局唯一标识符(GUID) 454

10.2 删除数据 454

10.2.1 TRUNCATE与DELETE 454

10.2.2 删除包含重复数据的行 455

10.2.3 基于联接的DELETE 456

10.3 更新数据 458

10.3.1 基于联接的UPDATE 458

10.3.2 更新大值数据类型 461

10.3.3 用SELECT和UPDATE语句进行赋值 462

10.4 合并数据 465

10.4.1 MERGE语句基础 467

10.4.2 额外增加一个谓词 470

10.4.3 多个WHEN子句 471

10.4.4 WHEN NOT MATCHED BY SOURCE子句 472

10.4.5 MERGE Values 473

10.4.6 MERGE与触发器 474

10.5 OUTPUT子句 475

10.5.1 带有OUTPUT的INSERT 476

10.5.2 带有OUTPUT的DELETE 477

10.5.3 带有OUTPUT的UPDATE 478

10.5.4 带有OUTPUT的MERGE 480

10.5.5 可组合的DML 481

10.6 总结 482

第11章 查询分区表 483

11.1 在SQL Server中进行分区 483

11.1.1 分区视图 483

11.1.2 分区表 484

11.2 总结 496

第12章 图、树、层次结构和递归查询 497

12.1 术语 497

12.1.1 图 497

12.1.2 树 498

12.1.3 层次结构 498

12.2 应用场景 498

12.2.1 员工组织图 498

12.2.2 材料清单(BOM) 500

12.2.3 道路系统 502

12.3 迭代/递归 505

12.3.1 下属 505

12.3.2 祖先 513

12.3.3 带有路径枚举的子图/子树 516

12.3.4 排序 518

12.3.5 环 520

12.4 具体化路径 523

12.4.1 维护数据 523

12.4.2 查询 527

12.5 使用HIERARCHYID数据类型的具体化路径 531

12.5.1 维护数据 532

12.5.2 查询 537

12.5.3 使用HIERARCHYID的其他方面 540

12.6 嵌套集合 548

12.6.1 分配左值和右值 549

12.6.2 查询 553

12.7 传递闭包(Transitive Closure) 555

12.7.1 有向无环图 555

12.7.2 无向有环图 559

12.8 总结 566

索引 567

相关图书
作者其它书籍
返回顶部