资源名称:SQL Server2012编程入门经典(第4版)

内容简介:

《SQLServer数据库经典译丛:SQLServer2012编程入门经典(第4版)》循序渐进的教程介绍如何创建效率更高的管理程序,如何从SQLServer数据库环境中获得商务智能。《SQLServer数据库经典译丛:SQLServer2012编程入门经典(第4版)》探讨了SQL的基本对象、基本查询和连接,然后把对象添加到数据库中,并使用对物理设计非常重要的项。接着研究了SQLServer脚本的编写。最后讨论了如何使用SQLServer2012的功能为一流应用程序建立一流数据库。

研究了开发SQLServer应用程序的关键概念:条件动作结构,提高对结果分页的控制,与SharePoint和Excel集成的应用程序,以及商务智能应用程序的开发。

学习客户端连接的改进、安全性、兼容性以及数据仓库性能的提高。

解决一些基本问题,包括管理键、编写脚本以及处理存储过程。

共享有效的技术来创建和修改表,用XML编程,使用SQLServer报表和集成服务。

作者简介:

Paul Atkinson自从20世纪90年代早期在Microsoft公司工作以来,就在研究数据库技术,他在Microsoft公司先把Microsoft Access作为一种辅助项目来学习,后来将它看做一种有代表性的支持技术。在此期间他还获得了波特兰州立大学的计算机科学学位,作为一名DBA在.com上冲浪,在网络泡沫破灭后则成为医疗行业的一位承包商。目前,Paul在休伦医疗集团任BI建筑师和团队带头人,负责开发传统和实时的BI解决方案。他开设的高性能T-SQL编程课程是休伦湖最受欢迎的课程设置。Paul与妻子Kristin、女儿Maureen住在俄勒冈州的波特兰市。Paul不工作或写书时,就在几个足球队踢球,或者骑山地车、滑雪、当厨师,骑自行车上下班,他还是学校委员会的主席、Timbers军队的资深成员和半个巧克力制作大师。就像Robert Heinlein写的那样,他的特长都与昆虫相关。

Robert Vieira是休伦咨询集团的软件架构师,是Microsoft SQL Server方面顶级权威的一位专家。他在国内会议上发言,其教学和写作中的独特教学方法非常有名。

资源目录:

第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.10 用户和角色 10

1.1.11 规则 10

1.1.12 默认值 11

1.1.13 用户自定义数据类型 11

1.1.14 全文目录 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 SQL Server配置管理器 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.10 sqlcmd 39

2.11 PowerShell 39

2.12 本章小结 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 使用FOR XML子句输出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 ALTER 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.10 本章小结 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.10 一次一个数据块:特殊的查询分页 212

7.11 性能方面的考虑 213

7.11.1 测量性能 214

7.11.2 JOIN、子查询和CTE的对比 215

7.12 本章小结 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.10 索引未被使用的原因 286

9.4.11 使用数据库引擎调整向导 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.10 索引聚集视图 317

10.11 本章小结 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.10 理解.NET程序集 413

12.11 使用存储过程的时机 413

12.12 本章小结 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 SERIALIZABLE 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 子句与INSTEAD OF子句 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 SQL Server提供的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.10 PATH选项 512

16.2.11 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 小结<span clas

版权声明:原创作品,未经允许不得转载,否则将追究法律责任。
本站资源有的自互联网收集整理,如果侵犯了您的合法权益,请联系本站我们会及时删除。
本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。
本文链接:酷龙资源网https://www.kulong.top/14799.html
许可协议:《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权