SQL Server 2012 T-SQL基础教程

978-7-115-33290-5
作者: 【美】Itzik Ben-Gan
译者: 李联国张昊天张洪举
编辑: 杜洁

图书目录:

目 录

第 1章 T-SQL查询和编程的背景 1

1.1 理论背景 1

1.1.1 SQL 2

1.1.2 集合理论 3

1.1.3 谓词逻辑 4

1.1.4 关系模型 4

1.1.5 数据生命周期 9

1.2 SQL Server体系结构 12

1.2.1 SQL Server的ABC特色 12

1.2.2 SQL Server实例 13

1.2.3 数据库 15

1.2.4 架构和对象 18

1.3 创建表和定义数据完整性 18

1.3.1 创建表 19

1.3.2 定义数据完整性 20

1.4 小结 24

第 2章 单表查询 25

2.1 SELECT语句的元素 25

2.1.1 FROM子句 27

2.1.2 WHERE子句 28

2.1.3 GROUP BY子句 30

2.1.4 HAVING子句 33

2.1.5 SELECT子句 34

2.1.6 ORDER BY子句 39

2.1.7 TOP和OFFSET-FETCH筛选 41

2.1.8 开窗函数速览 45

2.2 谓词和运算符 47

2.3 CASE表达式 50

2.4 NULL标记 52

2.5 同时操作 56

2.6 使用字符数据 57

2.6.1 数据类型 57

2.6.2 排序规则 58

2.6.3 运算符和函数 60

2.7 使用日期和时间数据 69

2.7.1 日期和时间数据类型 69

2.7.2 日期和时间常量 70

2.7.3 独立使用日期和时间 73

2.7.4 筛选日期范围 74

2.7.5 日期和时间函数 75

2.8 查询元数据 83

2.8.1 目录视图 83

2.8.2 信息架构视图 84

2.8.3 系统存储过程和函数 85

2.9 小结 86

2.10 练习 86

2.10.1 练习1 86

2.10.2 练习2 87

2.10.3 练习3 87

2.10.4 练习4 87

2.10.5 练习5 88

2.10.6 练习6 88

2.10.7 练习7 89

2.10.8 练习8 89

2.11 解决方案 90

2.11.1 解决方案1 90

2.11.2 解决方案2 91

2.11.3 解决方案3 91

2.11.4 解决方案4 91

2.11.5 解决方案5 92

2.11.6 解决方案6 92

2.11.7 解决方案7 92

2.11.8 解决方案8 93

第3章 联接 95

3.1 交叉联接 95

3.1.1 ANSI SQL-92语法 96

3.1.2 ANSI SQL-89语法 97

3.1.3 自交叉联接 97

3.1.4 生成数字表 98

3.2 内部联接 99

3.2.1 ANSI SQL-92语法 99

3.2.2 ANSI SQL-89语法 100

3.2.3 内部联接安全性 101

3.3 更多联接示例 102

3.3.1 复合联接 102

3.3.2 不等联接 103

3.3.3 多联接查询 105

3.4 外部联接 105

3.4.1 外部联接的基础知识 106

3.4.2 超越外部联接基础知识 108

3.5 小结 114

3.6 练习 115

3.6.1 练习1-1 115

3.6.2 练习1-2(可选的高 级练习) 116

3.6.3 练习2 117

3.6.4 练习3 117

3.6.5 练习4 118

3.6.6 练习5 118

3.6.7 练习6(可选的高 级练习) 119

3.6.8 练习7(可选的高 级练习) 119

3.7 解决方案 120

3.7.1 解决方案1-1 120

3.7.2 解决方案1-2 120

3.7.3 解决方案2 121

3.7.4 解决方案3 121

3.7.5 解决方案4 122

3.7.6 解决方案5 122

3.7.7 解决方案6 122

3.7.8 解决方案7 123

第4章 子查询 125

4.1 自包含子查询 125

4.1.1 自包含标量子查询示例 126

4.1.2 自包含多值子查询示例 128

4.2 相关子查询 131

4.2.1 EXISTS谓词 133

4.3 超越子查询基础知识 135

4.3.1 返回前一个或下一个值 135

4.3.2 使用运行聚合 136

4.3.3 不当子查询处理 137

4.4 小结 141

4.5 练习 142

4.5.1 练习1 142

4.5.2 练习2(可选的高 级练习) 142

4.5.3 练习3 143

4.5.4 练习4 143

4.5.5 练习5 144

4.5.6 练习6 144

4.5.7 练习7(可选的高 级练习) 145

4.5.8 练习8(可选的高 级练习) 145

4.6 解决方案 146

4.6.1 解决方案1 146

4.6.2 解决方案2 146

4.6.3 解决方案3 147

4.6.4 解决方案4 147

4.6.5 解决方案5 148

4.6.6 解决方案6 148

4.6.7 解决方案7 148

4.6.8 解决方案8 149

第5章 表表达式 151

5.1 派生表 151

5.1.1 分配列别名 153

5.1.2 使用参数 154

5.1.3 嵌套 155

5.1.4 多个引用 156

5.2 公用表表达式 157

5.2.1 在CTE中分配列别名 157

5.2.2 在CTE中使用参数 158

5.2.3 定义多个CTE 158

5.2.4 CTE中的多个引用 159

5.2.5 递归CTE 160

5.3 视图 162

5.3.1 视图和ORDER BY子句 163

5.3.2 视图选项 165

5.4 内嵌表值函数 169

5.5 APPLY运算符 170

5.6 小结 173

5.7 练习 174

5.7.1 练习1-1 174

5.7.2 练习1-2 174

5.7.3 练习2-1 175

5.7.4 练习2-2 175

5.7.5 练习3(可选的高 级练习) 176

5.7.6 练习4-1 176

5.7.7 练习4-2(可选的高 级练习) 177

5.7.8 练习5-1 178

5.7.9 练习5-2 178

5.8 解决方案 179

5.8.1 解决方案1-1 179

5.8.2 解决方案1-2 179

5.8.3 解决方案2-1 179

5.8.4 解决方案2-2 180

5.8.5 解决方案3 180

5.8.6 解决方案4-1 181

5.8.7 解决方案4-2 181

5.8.8 解决方案5-1 182

5.8.9 解决方案5-2 182

第6章 集合运算符 183

6.1 UNION运算符 184

6.1.1 UNION ALL多元集合运算符 184

6.1.2 UNION非重复项集合运算符 185

6.2 INTERSECT运算符 186

6.2.1 INTERSECT非重复项集合运算符 186

6.2.2 INTERSECT ALL多元集合运算符 187

6.3 EXCEPT运算符 189

6.3.1 EXCEPT非重复项集合运算符 189

6.3.2 EXCEPT ALL多元集合运算符 190

6.4 优先级 191

6.5 规避不支持的逻辑阶段 193

6.6 小结 195

6.7 练习 195

6.7.1 练习1 195

6.7.2 练习2 196

6.7.3 练习3 197

6.7.4 练习4 197

6.7.5 练习5(可选的高 级练习) 198

6.8 解决方案 199

6.8.1 解决方案1 199

6.8.2 解决方案2 200

6.8.3 解决方案3 200

6.8.4 解决方案4 200

6.8.5 解决方案5 201

第7章 查询 203

7.1 开窗函数 203

7.1.1 排名开窗函数 206

7.1.2 偏移开窗函数 209

7.1.3 聚合开窗函数 212

7.2 透视数据 214

7.2.1 使用标准SQL透视 216

7.2.2 使用本地T-SQL PIVOT运算符透视 217

7.3 逆透视数据 219

7.3.1 使用标准SQL逆透视 221

7.3.2 使用本地T-SQL UNPIVOT运算符逆透视 222

7.4 分组集 223

7.4.1 GROUPING SETS从属子句 225

7.4.2 CUBE从属子句 225

7.4.3 ROLLUP从属子句 226

7.4.4 GROUPING和GROUPING_ID函数 227

7.5 小结 229

7.6 练习 230

7.6.1 练习1 230

7.6.2 练习2 230

7.6.3 练习3 231

7.6.4 练习4 231

7.6.5 练习5 232

7.7 解决方案 233

7.7.1 解决方案1 233

7.7.2 解决方案2 233

7.7.3 解决方案3 234

7.7.4 解决方案4 235

7.7.5 解决方案5 236

第8章 数据修改 237

8.1 插入数据 237

8.1.1 INSERT VALUES语句 237

8.1.2 INSERT SELECT语句 239

8.1.3 INSERT EXEC语句 239

8.1.4 SELECT INTO语句 240

8.1.5 BULK INSERT语句 241

8.1.6 标识列属性和序列对象 242

8.2 删除数据 250

8.2.1 DELETE语句 251

8.2.2 TRUNCATE语句 252

8.2.3 基于联接的DELETE 252

8.3 更新数据 253

8.3.1 UPDATE语句 254

8.3.2 基于联接的UPDATE 255

8.3.3 赋值UPDATE 258

8.4 合并数据 259

8.5 通过表表达式修改数据 263

8.6 使用TOP和OFFSET-FETCH修改 265

8.7 OUTPUT子句 268

8.7.1 INSERT与OUTPUT 268

8.7.2 DELETE与OUTPUT 270

8.7.3 UPDATE与OUTPUT 271

8.7.4 MERGE与OUTPUT 272

8.7.5 可组合的DML 273

8.8 小结 275

8.9 练习 275

8.9.1 练习1 275

8.9.2 练习1-1 275

8.9.3 练习1-2 276

8.9.4 练习1-3 276

8.9.5 练习2 276

8.9.6 练习3 277

8.9.7 练习4 277

8.9.8 练习5 278

8.9.9 练习6 279

8.10 解决方案 279

8.10.1 解决方案1-1 279

8.10.2 解决方案1-2 279

8.10.3 解决方案1-3 279

8.10.4 解决方案2 280

8.10.5 解决方案3 281

8.10.6 解决方案4 282

8.10.7 解决方案5 282

第9章 事务和并发处理 285

9.1 事务 285

9.2 锁和阻塞 288

9.2.1 锁 288

9.2.2 排除阻塞 290

9.3 隔离级别 297

9.3.1 READ UNCOMMITTED隔离级别 298

9.3.2 READ COMMITTED隔离级别 299

9.3.3 REPEATABLE READ隔离级别 300

9.3.4 SERIALIZABLE隔离级别 302

9.3.5 基于行版本的隔离级别 303

9.3.6 隔离级别总结 309

9.4 死锁 310

9.5 小结 312

9.6 练习 312

9.6.1 练习1-1 313

9.6.2 练习1-2 313

9.6.3 练习1-3 313

9.6.4 练习1-4 313

9.6.5 练习1-5 314

9.6.6 练习1-6 314

9.6.7 练习2-1 315

9.6.8 练习2-2 315

9.6.9 练习2-3 316

9.6.10 练习2-4 317

9.6.11 练习2-5 319

9.6.12 练习2-6 320

9.6.13 练习3-1 322

9.6.14 练习3-2 322

9.6.15 练习3-3 322

9.6.16 练习3-4 322

9.6.17 练习3-5 322

9.6.18 练习3-6 323

9.6.19 练习3-7 323

第 10章 可编程对象 325

10.1 变量 325

10.2 批 327

10.2.1 以批为单元的语法分析 328

10.2.2 批和变量 329

10.2.3 不能被组合在同一个批中的语句 329

10.2.4 以批为单元的解析 330

10.2.5 GO n选项 330

10.3 流元素 331

10.3.1 IF...ELSE流元素 331

10.3.2 WHILE流元素 332

10.3.3 使用IF和WHILE的示例 334

10.4 游标 334

10.5 临时表 338

10.5.1 本地临时表 338

10.5.2 全局临时表 340

10.5.3 表变量 341

10.5.4 表类型 343

10.6 动态SQL 344

10.6.1 EXEC命令 344

10.6.2 sp_executesql存储过程 345

10.6.3 使用动态SQL的PIVOT 346

10.7 例程 347

10.7.1 用户定义函数 347

10.7.2 存储过程 349

10.7.3 触发器 351

10.8 错误处理 355

10.9 小结 359

附录A 入门指南 361

A.1 SQL Database入门 361

A.2 安装(企业)内部部署的SQL Server 362

A.2.1 获取SQL Server 362

A.2.2 创建一个用户账户 362

A.2.3 安装的必要条件 363

A.2.4 安装数据库引擎、文档和工具 364

A.3 下载源代码和安装示例数据库 371

A.3.1 在(企业)内部部署的SQL Server实例中创建并填充示例数据库 371

A.3.2 在SQL Database中创建并填充示例数据库 371

A.4 使用SQL Server Management Studio 373

A.5 使用SQL Server联机丛书 378

详情

本书全面系统地介绍了SQL Server 2012 T-SQL技术,包括T-SQL查询和编程的背景、单表查询、联接、子查询、表表达式、集合运算符、超越查询基础知识、数据修改、事务和并发处理、可编程对象等内容。本书提供了一个附录“入门指南”,来帮助你设置环境、下载本书的源代码、安装TSQL2012示例数据库、开始编写SQL Server代码,并了解如何使用SQL Server联机丛书获得帮助。

图书摘要

相关图书

D3 4.x数据可视化实战手册(第2版)
D3 4.x数据可视化实战手册(第2版)
数据科学实战手册(第2版)
数据科学实战手册(第2版)
Java数据分析指南
Java数据分析指南
Java数据科学指南
Java数据科学指南
Hadoop虚拟化
Hadoop虚拟化
数据科学家访谈录
数据科学家访谈录

相关文章

相关课程