当前位置:首页 > 工业技术
SQL Server 2012编程入门经典  第4版
SQL Server 2012编程入门经典  第4版

SQL Server 2012编程入门经典 第4版PDF电子书下载

工业技术

  • 电子书积分:19 积分如何计算积分?
  • 作 者:(美)阿特金森,(美)维埃拉著;王军,牛志玲译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2013
  • ISBN:9787302316510
  • 页数:692 页
图书介绍:这本循序渐进的教程将告诉读者如何创造更为productivemanagement的应用,以及从SQL Server数据库环境中获得商业智能。读者将学习SQL基本对象和基础的查询、连接。然后,将学习如何将对象添加到数据库和使用重要的物理设计项目。接下来,将学习SQL Server脚本。最后,读者将获得SQL Server2012的全部功能的能力,能为创建世界一流的应用构建世界一流的数据库。
《SQL Server 2012编程入门经典 第4版》目录

第1章 RDBMS基础:SQL Server数据库的构成 1

1.1 数据库对象概述 2

1.1.1 数据库对象 2

1.1.2 事务日志 6

1.1.3 最基本的数据库对象:表 7

1.1.4 文件组 8

1.1.5 数据库关系图 8

1.1.6 视图 9

1.1.7 存储过程 9

1.1.8 用户自定义函数 10

1.1.9 序列 10

1.1.1 0用户和角色 10

1.1.1 1规则 10

1.1.1 2默认值 11

1.1.1 3用户自定义数据类型 11

1.1.1 4全文目录 11

1.2 SQL Server数据类型 11

1.3 SQL Server对象标识符 15

1.3.1 需要命名的对象 16

1.3.2 命名规则 16

1.4 本章小结 17

第2章 SQL Server管理工具 19

2.1 使用联机丛书获得帮助 20

2.2 SQLServer配置管理器 21

2.2.1 服务管理 21

2.2.2 网络配置 21

2.2.3 协议 23

2.2.4 客户端 24

2.3 SQL Server Management Studio 26

2.3.1 启动Management Studio 27

2.3.2 通过“查询”窗口交互 30

2.4 SQL Server Data Tools(以前称为BIDS) 36

2.5 SQL Server集成服务(SSIS) 37

2.6 SQL Server Reporting Services(SSRS) 37

2.7 SQL Server Analysis Services(SSAS) 38

2.8 Bulk Copy Program(bcp) 38

2.9 SQL Server Profiler 38

2.1 0 sqlcmd 39

2.1 1 PowerShell 39

2.1 2本章小结 39

第3章 T-SQL基本语句 41

3.1 基本SELECT语句 42

3.1.1 SELECT语句与FROM子句 42

3.1.2 WHERE子句 46

3.1.3 ORDER BY子句 48

3.1.4 使用GROUPBY子句聚合数据 51

3.1.5 使用HAVING子句给分组设置条件 59

3.1.6 使用FORXML子句输出XML 61

3.1.7 通过OPTION子句利用提示 61

3.1.8 DISTINCT和ALL谓词 61

3.2 使用INSERT语句添加数据 64

3.2.1 多行插入 69

3.2.2 INSERT INTO…SELECT语句 69

3.3 用UPDATE语句更改获得的数据 71

3.4 DELETE语句 73

3.5 本章小结 75

第4章 连接 77

4.1 连接 78

4.2 内部连接 79

4.3 使用外部连接检索更多数据 86

4.3.1 简单的外部连接 86

4.3.2 处理更复杂的外部连接 92

4.4 完全连接 97

4.5 交叉连接 98

4.6 JOIN语句的早期语法结构 100

4.6.1 内部连接的早期语法结构 100

4.6.2 外部连接的早期语法结构 101

4.6.3 交叉连接的早期语法结构 102

4.7 联合 103

4.8 本章小结 106

第5章 创建和修改数据表 109

5.1 SQL Server中的对象名 109

5.1.1 模式名(也称为所有权) 110

5.1.2 数据库名 112

5.1.3 通过服务器命名 113

5.1.4 回顾默认值 113

5.2 CREATE语句 113

5.2.1 CREATE DATABASE 114

5.2.2 构建数据库 118

5.2.3 CREATE TABLE 120

5.3 ALTER语句 131

5.3.1 ALER DATABASE 131

5.3.2 ALTER TABLE 135

5.4 DROP语句 139

5.5 使用GUI工具 139

5.5.1 使用Management Studio创建数据库 140

5.5.2 回到代码:使用Management Studio创建脚本 144

5.6 本章小结 145

第6章 键和约束 147

6.1 约束的类型 148

6.1.1 域约束 148

6.1.2 实体约束 149

6.1.3 参照完整性约束 149

6.2 约束命名 149

6.3 键约束 150

6.3.1 主键约束 150

6.3.2 外键约束 153

6.3.3 唯一约束 164

6.4 CHECK约束 165

6.5 DEFAULT约束 166

6.5.1 在CREATE TABLE语句中定义DEFAULT约束 167

6.5.2 在已存在的表中添加DEFAULT约束 167

6.6 禁用约束 168

6.6.1 在创建约束时忽略无效的数据 168

6.6.2 临时禁用已存在的约束 171

6.7 规则和默认值 172

6.7.1 规则 173

6.7.2 删除规则 174

6.7.3 默认值 174

6.7.4 删除默认值 175

6.7.5 确定哪些表和数据类型使用给定的规则或默认值 175

6.8 用于实现数据完整性的触发器 176

6.9 如何选择 176

6.1 0本章小结 177

第7章 更复杂的查询 179

7.1 子查询的概念 180

7.2 关联子查询 184

7.2.1 关联子查询的工作原理 184

7.2.2 处理NULL数据——ISNULL函数 188

7.3 派生表 189

7.4 使用通用表表达式(CTE) 192

7.4.1 使用WITH关键字 192

7.4.2 使用多个CTE 194

7.4.3 递归CTE 195

7.5 使用EXISTS运算符 195

7.5.1 使用EXISTS筛选数据 195

7.5.2 以其他方式使用EXISTS 197

7.6 混合数据类型:CAST和CONVERT 199

7.7 使用MERGE命令同步数据 202

7.7.1 实际使用MERGE命令 202

7.7.2 BY TARGET和BY SOURCE 205

7.8 使用OUTPUT子句收集受影响的行 206

7.9 研究窗口化函数 208

7.9.1 ROW_NUMBER 208

7.9.2 RANK、DENSE-RANK和NTILE 211

7.1 0一次一个数据块:特殊的查询分页 212

7.1 1性能方面的考虑 213

7.1 1.1 测量性能 214

7.1 1.2 JOIN、子查询和CTE的对比 215

7.1 2本章小结 216

第8章 规范化和其他基本设计问题 219

8.1 理解表 219

8.2 保持数据“规范” 220

8.2.1 准备工作 221

8.2.2 第一范式 222

8.2.3 第二范式 225

8.2.4 第三范式 226

8.2.5 其他范式 228

8.3 理解关系 229

8.3.1 一对一关系 229

8.3.2 零或一对一关系 230

8.3.3 一对一或一对多关系 230

8.3.4 一对零、一对一或一对多关系 231

8.3.5 多对多关系 232

8.4 数据库关系图 234

8.4.1 表 236

8.4.2 在数据库关系图中创建关系 242

8.5 反规范化 245

8.6 超出规范化的一些规则 245

8.6.1 保持简单 245

8.6.2 选择数据类型 246

8.6.3 尽量进行存储 246

8.7 创建一个快速示例 247

8.7.1 创建数据库 247

8.7.2 添加数据库关系图和初始表 247

8.7.3 添加关系 251

8.7.4 添加一些约束 253

8.8 本章小结 253

第9章 SQL Server存储和索引结构 255

9.1 SQL Server存储机制 255

9.1.1 数据库 255

9.1.2 区段 256

9.1.3 页 256

9.1.4 行 257

9.1.5 稀疏列 257

9.2 理解索引 258

9.2.1 平衡树(B-树) 259

9.2.2 SQL Server中的数据访问方式 261

9.3 创建、修改和删除索引 269

9.3.1 CREATE INDEX语句 269

9.3.2 创建XML索引 274

9.3.3 随约束创建的隐含索引 275

9.3.4 在稀疏列和地理空间列上创建索引 275

9.4 明智地选择——在何时何地使用何种索引 276

9.4.1 选择性 276

9.4.2 注意成本:少即是多 279

9.4.3 选择群集索引 279

9.4.4 列顺序问题 281

9.4.5 覆盖索引 282

9.4.6 过滤索引 282

9.4.7 修改索引 283

9.4.8 删除索引 286

9.4.9 从查询计划中获取提示 286

9.4.1 0索引未被使用的原因 286

9.4.1 1使用数据库引擎调整向导 287

9.5 维护索引 287

9.5.1 碎片 288

9.5.2 确定碎片和页拆分的可能性 288

9.6 本章小结 292

第10章 视图 295

10.1 创建简单的视图 295

10.2 使用T-SQL编辑视图 307

10.3 删除视图 307

10.4 在Management Studio中创建和编辑视图 307

10.4.1 在Management Studio中创建视图 308

10.4.2 在Management Studio中编辑视图 310

10.5 审查:显示现有的代码 311

10.6 保护代码:加密视图 312

10.7 关于模式绑定 314

10.8 使用VIEW_METADATA使视图看起来像表一样 314

10.9 索引(物化)视图 314

10.1 0索引聚集视图 317

10.1 1本章小结 320

第11章 编写脚本和批处理 323

11.1 脚本的基础知识 324

11.1.1 使用USE语句选择数据库环境 324

11.1.2 声明变量 325

11.1.3 设置变量中的值 326

11.1.4 系统函数回顾 328

11.1.5 检索标识值 329

11.1.6 生成序列 333

11.1.7 使用@@ROWCOUNT 336

11.2 将语句分组到批处理中 337

11.2.1 自成一行 338

11.2.2 每个批处理单独发送到服务器 338

11.2.3 GO不是T-SQL命令 339

11.2.4 批处理中的错误 339

11.2.5 何时使用批处理 339

11.3 从命令提示符运行:sqlcmd 343

11.4 动态SQL:用EXEC命令动态生成代码 347

11.4.1 动态生成代码 347

11.4.2 理解动态SQL的危险性 349

11.5 使用控制流语句 353

11.5.1 IF…ELSE语句 353

11.5.2 CASE语句 357

11.5.3 用WHILE语句进行循环 362

11.5.4 WAITFOR语句 364

11.5.5 使用TRY/CATCH块处理错误 364

11.6 本章小结 367

第12章 存储过程 369

12.1 创建存储过程:基本语法 370

12.2 使用ALTER修改存储过程 371

12.3 删除存储过程 372

12.4 参数化存储过程 372

12.4.1 声明参数 372

12.4.2 通过返回值确认成功或失败 378

12.4.3 如何使用RETURN 378

12.5 错误处理 380

12.5.1 处理内联错误 381

12.5.2 利用@@ERROR 382

12.5.3 在存储过程中使用@@ERROR 383

12.5.4 在错误发生前处理错误 386

12.5.5 手动引发错误 392

12.5.6 重新抛出错误 396

12.5.7 添加自定义的错误消息 397

12.6 存储过程的优点 399

12.6.1 创建可调用的进程 399

12.6.2 为了安全性而使用存储过程 399

12.6.3 存储过程和性能 400

12.7 扩展存储过程(XP) 402

12.8 递归简介 402

12.9 调试 404

12.9.1 启动调试器 405

12.9.2 调试器的组成 405

12.9.3 使用断点进行中断 408

12.9.4 使用调试器 410

12.1 0理解.NET程序集 413

12.1 1使用存储过程的时机 413

12.1 2本章小结 414

第13章 用户自定义函数 417

13.1 UDF的定义 417

13.2 返回标量值的UDF 418

13.3 返回表的UDF 424

13.3.1 内联UDF 424

13.3.2 理解确定性 430

13.4 调试用户自定义函数 433

13.5 数据库中的.NET 433

13.6 本章小结 434

第14章 事务和锁 435

14.1 事务 435

14.1.1 ACID事务 436

14.1.2 事务操作简介 436

14.1.3 BEGIN TRAN 437

14.1.4 COMMIT TRAN 437

14.1.5 ROLLBACK TRAN 437

14.1.6 SAVE TRAN 437

14.2 SQL Server日志的工作方式 439

14.2.1 失败和恢复 440

14.2.2 激活隐式事务 442

14.3 锁和并发 442

14.3.1 锁的用途 443

14.3.2 可以锁定的资源 446

14.3.3 锁升级和锁对性能的影响 446

14.3.4 锁定模式 447

14.3.5 锁的兼容性 448

14.3.6 指定一种特有的锁定类型——优化器提示 449

14.4 设置隔离级别 450

14.4.1 READ COMMITTED 451

14.4.2 READ UNCOMM-ITTED 451

14.4.3 REPEATABLE READ 452

14.4.4 SERIAIIZABLE 452

14.4.5 SNAPSHOT 452

14.5 处理死锁(1205错误) 453

14.5.1 SQL Server判断死锁的方式 453

14.5.2 选择死锁牺牲者的方式 453

14.5.3 避免死锁 453

14.6 本章小结 456

第15章 触发器 459

15.1 触发器的概念 460

15.1.1 ON子句 461

15.1.2 WITH ENCRYPTION选项 461

15.1.3 FOR | AFTER 462

15.1.4 FOR|AFTER子句与INSTEADOF子句 463

15.1.5 NOT FOR REPLICATION选项 464

15.1.6 AS子句 464

15.2 使用触发器实施数据完整性规则 464

15.2.1 处理来自于其他表的需求 465

15.2.2 使用触发器来检查更新的变化 466

15.2.3 将触发器用于自定义错误消息 468

15.3 触发器的其他常见用途 468

15.4 触发器的其他问题 468

15.4.1 触发器可以嵌套 469

15.4.2 触发器可以递归 469

15.4.3 触发器不能防止体系结构的修改 469

15.4.4 可以在不删除的情况下关闭触发器 470

15.4.5 触发器的激活顺序 470

15.5 INSTEAD OF触发器 472

15.6 性能考虑 472

15.6.1 触发器的被动性 472

15.6.2 触发器与激活的进程之间不存在并发问题 472

15.6.3 使用IF UPDATE()和COLUMNS-UPDATED() 473

15.6.4 保持触发器短小精悍 475

15.6.5 选择索引时不要忘记触发器 475

15.6.6 不要在触发器中进行回滚 475

15.7 删除触发器 476

15.8 调试触发器 476

15.9 本章小结 477

第16章 初识XML 479

16.1 XML基础 480

16.1.1 XML文档的各个组成部分 481

16.1.2 名称空间 489

16.1.3 元素内容 491

16.1.4 有效与格式良好——架构和DTD 492

16.2 SQLServer提供的XML支持 492

16.2.1 将列定义为XML类型 493

16.2.2 XML架构集合 494

16.2.3 创建、修改和删除XML架构集合 496

16.2.4 XML数据类型方法 498

16.2.5 强制执行架构集合之外的约束 504

16.2.6 用XML格式检索关系数据 505

16.2.7 RAW选项 506

16.2.8 AUTO选项 509

16.2.9 EXPLICIT选项 510

16.2.1 0 PATH选项 512

16.2.1 1 OPENXML函数 517

16.3 XSLT简介 521

16.4 本章小结 523

第17章 商务智能基础 525

17.1 商务智能的概念 525

17.1.1 BI优于其他方案 526

17.1.2 根据数据做出决策 526

17.1.3 不同的专家有不同的观点 528

17.1.4 通过过去的业绩预测未来的行为 528

17.1.5 谁使用BI 528

17.2 数据仓库 528

17.2.1 数据仓库的目标 529

17.2.2 OLTP与OLAP 529

17.2.3 Kimball与Inmon 530

17.3 维度建模:为什么是规范化的 533

17.3.1 度量值和度量指标 533

17.3.2 事实 534

17.3.3 维度 536

17.4 ETL 542

17.4.1 提供数据 542

17.4.2 强制一致性 543

17.4.3 通过定义权威数据来解决冲突 544

17.4.4 2个、3个或更多个阶段 544

17.4.5 在ETL过程中处理并发 545

17.4.6 缓存提取的内容——操作数据存储(ODS) 546

17.5 使数据可操作:BI报表技术 546

17.5.1 目标 547

17.5.2 关键性能指示器 547

17.5.3 仪表盘 549

17.5.4 记分卡 549

17.5.5 明细表 549

17.5.6 下钻 550

17.5.7 钻取 550

17.5.8 临时报表 551

17.6 本章小结 551

第18章 BI存储和报表资源 553

18.1 T-SQL中的BI 554

18.1.1 AdventureWorks数据仓库 554

18.1.2 使用T-SQL分析函数 555

18.1.3 columnstore索引 563

18.2 SQL Server Analysis Services 564

18.3 建立第一个多维数据集 565

18.3.1 数据源 571

18.3.2 数据源视图 572

18.3.3 多维数据集 572

18.3.4 度量值组 573

18.3.5 维度 574

18.3.6 多维数据集的其他内容 576

18.4 自助式BI:用户工具 576

18.4.1 报表构建器 577

18.4.2 PowerPivot:带有SharePoint和Excel的轻型BI 577

18.4.3 Power View 579

18.5 小结 579

第19章 Reporting Services 581

19.1 Reporting Services 101 581

19.2 理解SSRS报表的生命周期 582

19.2.1 在SSRS中开发报表 582

19.2.2 管理报表 583

19.2.3 把报表发布给用户 583

19.3 理解Reporting Services体系结构 583

19.3.1 SSDT:报表设计器 584

19.3.2 SSRS Windows服务 584

19.3.3 报表管理器 584

19.3.4 报表构建器 584

19.3.5 报表查看器 584

19.4 构建简单的报表模型 585

19.4.1 创建项目 585

19.4.2 给数据模型添加内容 593

19.4.3 构建和部署数据模型 598

19.4.4 创建报表 599

19.5 报表服务器项目 607

19.5.1 建立报表服务器项目 607

19.5.2 部署报表 612

19.6 本章小结 613

第20章 使用Integration Services 进行集成 615

20.1 理解问题 615

20.2 使用导入/导出向导生成基本的程序包 616

20.2.1 启动向导 616

20.2.2 选择数据源 617

20.2.3 完成向导 620

20.3 程序包基础知识 622

20.3.1 “连接管理器”面板 623

20.3.2 程序包编辑器面板 625

20.4 执行程序包 632

20.4.1 在Development Studio中执行程序包 633

20.4.2 在SSMS中执行 633

20.4.3 使用执行包实用工具 635

20.4.4 使用SQL Server Agent执行程序包 638

20.4.5 从程序中执行程序包 638

20.5 关于程序包的补充说明 638

20.6 本章小结 638

第21章 扮演管理员的角色 641

21.1 调度作业 642

21.1.1 创建操作员 643

21.1.2 创建作业和步骤 644

21.2 登录和用户 651

21.2.1 安全模式 652

21.2.2 创建登录和用户 652

21.2.3 许可和拥有权 654

21.3 备份和恢复 654

21.3.1 创建备份 655

21.3.2 恢复模式 658

21.3.3 还原 658

21.4 索引维护 660

21.5 数据归档 662

21.6 基于策略的管理 663

21.7 用POWERSHELL自动完成管理任务 663

21.7.1 PowerShell 663

21.7.2 安装和启用powerShell 664

21.7.3 cmdlet和模块 664

21.7.4 Sqlps 664

21.7.5 部署和执行 666

21.8 本章小结 667

附录A 习题答案 669

返回顶部