《SQL宝典》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:田彬编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2014
  • ISBN:9787121218866
  • 页数:500 页
图书介绍:本书以应用广泛的SQL Server数据库为依据,按照数据库操作的一般顺序,以基础介绍、数据库及表的创建、数据查询、数据操纵、数据控制、事务控制和数据库管理的顺序,由浅到深地介绍Transact-SQL语言。全书面向SQL的初学者,着重讲解它的语法,同时,结合大量的实例,并给出详实的实例代码,便于读者实践操作,迅速掌握。另外,对一些难以理解的概念和复杂的语法,辅以详实的理论讲解。因此,从某种意义上将,本书不仅仅是语法手册,还是学习手册。

第1章 数据库系统与SQL语言概述 1

1.1 数据库系统与数据模型 1

1.1.1 基本术语 1

1.1.2 数据库技术的发展 2

1.1.3 数据模型 4

1.2 数据库系统的体系结构 5

1.2.1 数据库系统的三级模式结构 5

1.2.2 数据库管理系统(DBMS) 6

1.2.3 数据库系统的工作流程 7

1.3 关系数据库的简单介绍 8

1.3.1 关系数据库的基本特性 9

1.3.2 关系数据库的设计规范 9

1.4 SQL语言概述 10

1.4.1 SQL语言的发展 10

1.4.2 SQL语言的功能 11

1.4.3 SQL语言的执行形式 11

1.4.4 SQL语句结构 12

1.4.5 SQL的环境 13

1.4.6 SQLDBMS的客户机/服务器模型 15

1.4.7 SQL语言的扩展 16

1.5 小结 16

第2章 Transact-SQL与SQLServer2012 17

2.1 SQL Server 2012及其简单应用 17

2.1.1 SQL Server 2012的版本 17

2.1.2 SQL ServerManagement Studio 18

2.1.3 使用Management Studio创建数据库 19

2.1.4 使用Management Studio创建、查看、编辑表 21

2.1.5 使用Management Studio编辑运行T-SQL语言 23

2.2 Transact-SQL语言 24

2.2.1 Transact-SQL概述 24

2.2.2 Transact-SQL的标识符 25

2.2.3 对象命名规则 25

2.2.4 Transact-SQL的主要组成 26

2.2.5 Transact-SQL的其他一些常用命令 28

2.3 Transact-SQL在SQL Server 中的执行 34

2.3.1 解析Transact-SQL语句 34

2.3.2 编译Transact-SQL语句 35

2.3.3 执行Transact-SQL语句 35

2.4 小结 35

第3章 数据库与表的操作 36

3.1 创建、修改和删除数据库 36

3.1.1 SQL Server数据库的组成 36

3.1.2 创建数据库——CREATE DATABASE 38

3.1.3 修改数据库——ALTER DATABASE 41

3.1.4 查看数据库信息——sp_helpdb、sp_spaceused 43

3.1.5 删除数据库——DROP DATABASE 46

3.2 SQL Server中的表 46

3.2.1 表的结构及设计 46

3.2.2 Transact-SQL对表的要求 47

3.2.3 表的类型 47

3.3 SQL Server2012中的数据类型 48

3.3.1 数字类型 48

3.3.2 时间和日期类型 50

3.3.3 字符数据类型 52

3.3.4 二进制数据类型 54

3.3.5 其他数据类型 54

3.3.6 用户自定义数据类型 55

3.3.7 数据类型同义词 57

3.4 创建表(CREATE TABLE) 58

3.4.1 实例表设计 58

3.4.2 创建基本表——CREATE TABLE 59

3.4.3 指定值非空——NOT NULL 61

3.4.4 指定列的默认值——DEFAULT 62

3.5 编辑表结构(ALTER TABLE) 63

3.5.1 添加列或约束——ADD 63

3.5.2 修改列的定义——ALTER COLUMN 64

3.5.3 删除列——DROP COLUMN 65

3.6 重命名、删除表 67

3.6.1 修改表的名称——sp rename 67

3.6.2 删除基本表——DROP TABLE 68

3.7 小结 68

第4章 基本的查询 69

4.1 SELECT语句的结构与执行 69

4.1.1 SELECT语句的语法结构 69

4.1.2 SELECT各子句的顺序及功能 70

4.1.3 SELECT语句各子句的执行 70

4.2 最简单的查询 71

4.2.1 向实例表中添加数据 71

42.2 查询表中列的数据——FROM子句 72

4.2.3 去除结果的重复信息——DISTINCT 73

4.2.4 查询所有列——“*” 75

4.2.5 进行无数据源检索 76

4.2.6 返回查询的部分数据——TOP 76

4.3 带有搜索条件的查询 78

4.3.1 简单的选择查询——WHERE 78

4.3.2 使用比较表达式 79

4.3.3 使用基本的逻辑表达式——NOT、AND、OR 80

4.3.4 空值(NULL)的判断——IS[NOT]NULL 85

4.3.5 限定数据范围——BETWEEN 86

4.3.6 限制检索数据的范围——IN 88

4.3.7 模糊查询——LIKE 89

4.4 排序查询结果 94

4.4.1 基本排序——ORDER BY 94

4.4.2 对多列进行排序 97

4.5 小结 98

第5章 查询中表达式与函数的使用 99

5.1 SQL Server中的运算符 99

5.1.1 算术运算符 99

5.1.2 位运算符 99

5.1.3 比较运算符 100

5.1.4 逻辑运算符 100

5.1.5 字符串连接符 101

5.1.6 赋值运算符 101

5.1.7 运算符的优先级 101

5.2 SELECT子句中表达式的使用 101

5.2.1 使用连接符连接列—“+” 102

5.2.2 操作查询的列名——“=”、“AS” 103

5.2.3 对重命名列的操作 105

5.2.4 算术表达式的使用 107

5.3 数学函数的使用 108

5.3.1 三角函数 108

5.3.2 计算函数 109

5.3.3 近似函数 109

5.4 字符处理函数的使用 110

5.4.1 SQL Server 2012 中的字符处理函数 110

5.4.2 字符的转换处理函数 111

5.4.3 字符串的提取函数 114

5.4.4 其他字符串处理函数 118

5.5 日期、时间处理函数的使用 120

5.5.1 SQL Server 2012中的日期处理函数 120

5.5.2 获取当前时间——GETDATE、GETUTCDATE、CURRENT_TIMESTAMP 120

5.5.3 增加、减少时间——DATEADD 121

5.5.4 获取时间间隔——DATEDIFF 122

5.5.5 获取时间整数值——DAY、MONTH、YEAR、DATEPART 123

5.5.6 获取时间的字符串——DATENAME 124

5.5.7 常用的时间计算 124

5.6 类型转换函数的使用 126

5.6.1 类型转换——CAST 126

5.6.2 类型转换——CONVERT 128

5.7 小结 129

第6章 系统函数、聚合函数与分组查询 130

6.1 系统函数的使用 130

6.1.1 信息查询相关的系统函数 130

6.1.2 判断、分类系统函数 131

6.1.3 统计系统函数 134

6.2 聚合函数的使用 136

6.2.1 聚合函数的种类 136

6.2.2 计数函数——COUNT 137

6.2.3 求和函数——SUM 138

6.2.4 均值函数——AVG 139

6.2.5 最大值/最小值函数——MAX/MIN 140

6.2.6 统计函数——STDEV、STDEVP、VAR、VARP 141

6.2.7 聚合函数的重值处理——ALL、DISTINCT 141

6.2.8 聚合函数的执行机理 142

6.3 分组查询 143

6.3.1 简单分组——GROUP BY 143

6.3.2 多列分组 144

6.3.3 分组查询中NULL值的处理 145

6.3.4 汇总数据运算符——CUBE、ROLLUP 146

6.3.5 区分不同的NULL值——GROUPING 147

6.3.6 筛选分组结果——HAVING 148

6.3.7 多级分类汇总——COMPUTE 150

6.3.8 对分组聚合结果进行聚合分析 152

6.4 小结 154

第7章 数据连接与多表查询 155

7.1 多表连接的基本概念与实现 155

7.1.1 连接的概念 155

7.1.2 连接的类型与实现 156

7.1.3 创建实例表ReaderInfo 156

7.2 简单多表查询的实现 158

7.2.1 使用FROM子句实现多表查询 158

7.2.2 使用WHERE子句指定连接条件 159

7.2.3 使用别名作为表名的简写 160

7.2.4 自连接表进行查询 161

7.3 使用JOIN关键字实现表的连接 163

7.3.1 基本连接语法 163

7.3.2 内部连接——INNER JOIN 163

7.3.3 外部连接——OUTER JOIN 165

7.3.4 交叉连接——CROSS JOIN 170

7.3.5 连接与空值 171

7.3.6 表的连接与聚合分析 173

7.4 集合运算 174

7.4.1 关系的集合运算 174

7.4.2 集合并运算——UNION 175

7.4.3 多表的UNION操作 177

7.4.4 UNION与JOIN的区别 178

7.4.5 集合差/集合交运算——EXCEPT/INTERSECT 179

7.4.6 集合运算在Transact-SQL语句的使用原则 182

7.5 小结 183

第8章 数据库数据操作 184

8.1 向表中添加数据——INSERT 184

8.1.1 INSERT命令的基本语法 184

8.1.2 整行插入数据 185

8.1.3 INSERT操作中NULL值的处理 186

8.1.4 INSERT操作中默认值的处理 187

8.1.5 INSERT操作中唯一值的处理 188

8.1.6 使用INSERT...SELECT插入数据 189

8.2 修改和更新表中的数据——UPDATE 191

8.2.1 UPDATE命令的基本语法 192

8.2.2 使用UPDATE更新数据行 192

8.2.3 使用FROM和WHERE子句根据多表连接更新数据 193

8.2.4 大值数据类型字段值的更新 195

8.2.5 使用OPENROWSET和BULK来操作大型数据对象 197

8.3 删除表中的数据——DELETE 199

8.3.1 DELETE命令的基本语法 199

8.3.2 使用DELETE删除行 200

8.3.3 使用TRUNCATE TABLE删除表中的所有数据 201

8.4 BLOB(TEXT、NTEXT和IMAGE)数据处理 202

8.4.1 写BLOB数据——WRITETEXT 202

8.4.2 更新BLOB数据——UPDATETEXT 204

8.4.3 TEXTSIZE 选项和@@TEXTSIZE函数 205

8.5 OUTPUT子句 206

8.5.1 基本语法 206

8.5.2 OUTPUT 子句的使用 207

8.6 表中数据的复制和导入导出操作 211

8.6.1 复制表中数据——SELECT... INTO 211

8.6.2 导入导出数据——BCP工具 212

8.7 小结 214

第9章 子查询及FOR XML子句的使用 215

9.1 子查询基础 215

9.1.1 相关子查询与非相关子查询 215

9.1.2 子查询的组成 217

9.1.3 子查询的使用方式及限制 217

9.2 比较运算符引入返回单值的子查询 218

9.2.1 比较运算符引入子查询 218

9.2.2 在子查询中使用聚合函数返回单值 220

9.3 IN或修改的比较运算符引入返回多值的子查询 222

9.3.1 使用[NOT]IN引入子查询 222

9.3.2 使用修改的比较运算符引入返回多值的子查询 225

9.4 EXISTS引入的存在测试子查询 229

9.4.1 使用EXISTS的子查询 229

9.4.2 EXISTS子查询的使用 230

9.4.3 使用EXISTS子查询检查表中的重复行 231

9.5 子查询的其他应用 232

9.5.1 在子查询中使用TOP关键字 232

9.5.2 在SELECT子句中使用子查询 233

9.5.3 在HAVING子句中使用子查询 234

9.5.4 在数据操作语句(DML)中使用子查询 236

9.6 FOR XML子句 237

9.6.1 FOR XML子句的基本语法 238

9.6.2 FOR XMLRAW模式及使用 238

9.6.3 FOR XMLAUTO模式及使用 240

9.6.4 FOR XMLEXPLICIT模式及使用 241

9.6.5 FOR XMLPATH模式及使用 243

9.6.6 使用TYPE指令返回XML数据类型 246

9.6.7 在数据操作语句(DML)中使用FOR XML子句 246

9.7 小结 247

第10章 表的约束、索引与视图 248

10.1 表键及其使用 248

10.1.1 表约束的种类 248

10.1.2 约束的创建 248

10.1.3 主键约束——PRIM Y KEY 249

10.1.4 外键约束——FOREIGN KEY 251

10.1.5 外键与级联引用完整性约束 255

10.1.6 标识符列——IDENTITY属性 258

10.1.7 查看、更改标识值——DBCC CHECKIDENT 260

10.2 表的约束 261

10.2.1 唯一性约束——UNIQUE 261

10.2.2 校验约束——CHECK 262

10.2.3 约束的删除、修改和禁用 264

10.3 索引 266

10.3.1 索引的基础知识 267

10.3.2 创建索引——CREATEINDEX 268

10.3.3 非聚集索引的创建和使用—— NONCLUSTERED 269

10.3.4 聚集索引的创建和使用——CLUSTERED 272

10.3.5 聚集索引和非聚集索引的使用 274

10.3.6 查看、修改和删除索引 274

10.3.7 索引的使用准则 277

10.4 视图 278

10.4.1 视图的基础知识 278

10.4.2 创建视图——CREATE VIEW 279

10.4.3 查询视图的定义和相关信息 281

10.4.4 修改、更新和删除视图 283

10.4.5 通过视图修改表中记录 284

10.4.6 索引视图及其使用 288

10.5 小结 290

第11章 存储过程与用户自定义函数 291

11.1 理解存储过程 291

11.1.1 存储过程的基本概念 291

11.1.2 存储过程的优点 291

11.1.3 存储过程的种类 292

11.2 程序流控制语句 292

11.2.1 SQL Server 中的程序流控制语句 292

11.2.2 IF...ELSE条件选择结构 293

11.2.3 BEGIN...END语句块 294

11.2.4 CASE结构 294

11.2.5 WHILE循环结构 296

11.2.6 WAITFOR等待语句 297

11.3 存储过程的创建和使用 298

11.3.1 系统存储过程 298

11.3.2 创建存储过程——CREATE PROCEDURE 298

11.3.3 创建存储过程的实例 299

11.3.4 执行存储过程——EXECUTE 302

11.3.5 查看、修改和删除存储过程 304

11.4 用户自定义函数的创建和使用 306

11.4.1 创建标量型自定义函数 307

11.4.2 创建内联表值自定义函数 308

11.4.3 创建多语句表值自定义函数 309

11.4.4 调用用户自定义函数 311

11.4.5 修改、查询和删除自定义函数 312

11.5 小结 313

第12章 触发器与错误处理 314

12.1 触发器的基本概念 314

12.1.1 触发器简介 314

12.1.2 触发器的类型 314

12.1.3 触发器的作用及使用 315

12.1.4 触发器的执行环境 316

12.2 创建和使用DML触发器 317

12.2.1 AFTER DML触发器的创建语法 317

12.2.2 AFTER DML触发器的创建实例 318

12.2.3 测试对指定列的 UPDATE操作 321

12.2.4 INSTEAD OFDML触发器的创建和使用 323

12.2.5 嵌套触发器 327

12.2.6 递归触发器 330

12.2.7 查询DML触发器的相关信息 333

12.3 创建和使用DDL触发器 334

12.3.1 DDL触发器的创建语法 334

12.3.2 DDL触发器的创建实例 335

12.3.3 查询DDL触发器的相关信息 337

12.4 触发器的管理 339

12.4.1 使用系统存储过程查询触发器的相关信息 339

12.4.2 修改触发器——ALTER TRIGGER 340

12.4.3 禁用/启用触发器——DISABLE/ENABLE TRIGGER 341

12.4.4 设置触发器的激发顺序——sp settriggerorder 341

12.4.5 删除触发器——DROP TRIGGER 343

12.5 错误的获取与处理 344

12.5.1 查询错误消息——sys.messages 344

12.5.2 使用用户自定义错误消息——sp_addmessage/sp_dropmessage 345

12.5.3 激发错误消息——RAISERROR 346

12.5.4 获取错误消息——TRY...CATCH/@@ERROR 347

12.6 小结 349

第13章 安全性管理——主体、权限、安全对象 350

13.1 SQL Server 2012安全模式 350

13.1.1 主体(Principals) 350

13.1.2 安全对象(Securables) 354

13.1.3 权限(Permissions) 355

13.2 创建与管理Windows级别的主体 357

13.2.1 创建Windows认证登录用户(组)——CREATE LOGIN 357

13.2.2 查看Windows认证登录用户 358

13.2.3 修改Windows认证登录用户——ALTER LOGIN 359

13.2.4 删除Windows认证登录用户——DROP LOGIN 359

13.3 创建与管理SQL Server级别的主体 360

13.3.1 创建SQL Server认证登录用户——CREATE LOGIN 360

13.3.2 修改SQL Server认证登录用户——ALTER LOGIN 361

13.3.3 查询服务器角色信息 363

13.3.4 管理服务器角色信息 363

13.4 创建与管理数据库级别的主体 365

13.4.1 创建数据库用户——CREATE USER 365

13.4.2 修改、删除数据库用户——ALTER/DROP USER 367

13.4.3 管理数据库用户 367

13.4.4 管理固定数据库角色 370

13.4.5 管理用户自定义数据库角色 371

13.4.6 管理应用程序角色 373

13.5 安全对象与权限 375

13.5.1 SQL Server的内置权限 375

13.5.2 服务器范围的安全对象及其权限管理 376

13.5.3 数据库范围的安全对象及其权限管理 379

13.5.4 架构范围的安全对象及其权限管理 380

13.5.5 对象类安全对象及其权限管理 385

13.6 主体、安全对象和权限的管理 388

13.6.1 评估当前用户对安全对象的有效权限——Has_perms_by_name 388

13.6.2 查询当前用户对安全对象的有效权限——fn_my_permissions 389

13.6.3 创建凭据——CREATE CREDENTIAL 390

13.7 小结 391

第14章 事务控制和并发处理 392

14.1 事务控制的基本概念 392

14.1.1 事务控制的必要性 392

14.1.2 事务的ACID特性及实现 393

14.1.3 事务的状态 393

14.1.4 Transact-SQL中事务的执行 394

14.2 SQL Server 中事务的实现 395

14.2.1 启动事务——BEGIN TRANSACTION 395

14.2.2 提交事务——COMMIT TRANSACTION 397

14.2.3 回滚事务——ROLLBACK TRANSACTION 399

14.2.4 设置事务的保存点——SAVE TRANSACTION 401

14.3 并发控制及其实现 402

14.3.1 并发访问的问题 403

14.3.2 SQL Server中的锁 405

14.3.3 锁的使用 406

14.3.4 显示数据库中活跃的事务和锁信息——DBCC OPENTRAN 409

14.3.5 事务隔离级别 410

14.3.6 设置事务隔离级别——SET TRANSATION 411

14.3.7 不同事务隔离级别实现并发控制实例 412

14.3.8 事务阻塞及其解决方法 420

14.3.9 死锁及预防 423

14.4 小结 426

第15章 游标与全文检索 427

15.1 游标的基本概念 427

15.1.1 游标的概念 427

15.1.2 游标的实现及应用过程 428

15.2 基本游标的创建和使用 429

15.2.1 创建游标——DECLARE CURSOR 429

15.2.2 打开游标——OPENCURSOR 430

15.2.3 检索游标数据——FETCH CURSOR 430

15.2.4 关闭/删除游标——CLOSE/DEALLOCATE 431

15.2.5 遍历游标结果集——@@FETCH_STATUS 433

15.2.6 使用游标修改、删除数据 434

15.3 Transact-SQL扩展游标与游标的管理 436

15.3.1 Transact-SQL扩展游标语法 436

15.3.2 使用游标变量 438

15.3.3 事务中游标的使用 440

15.3.4 游标的管理 441

15.4 全文检索基础 442

15.4.1 全文索引和全文目录 442

15.4.2 创建全文目录——CREATE FULLTEXT CATALOG 442

15.4.3 创建全文索引——CREATE FULLTEXT INDEX 443

15.5 使用全文谓词和全文函数进行全文检索 445

15.5.1 使用CONTAINS谓词进行全文检索 445

15.5.2 使用FREETEXT谓词进行全文检索 448

15.5.3 使用全文函数——CONTAINSTABLE和FREETEXTTABLE 448

15.6 小结 450

第16章 服务器与数据库的配置与管理 451

16.1 管理服务器配置选项 451

16.1.1 查询服务器配置选项 451

16.1.2 更改服务器配置选项 453

16.2 管理数据库配置选项 454

16.2.1 查询数据库信息 455

16.2.2 自动选项及其设置 456

16.2.3 ANSI SQL选项及其设置 457

16.2.4 外部数据源对数据库的访问选项 459

16.2.5 游标选项及其设置 459

16.2.6 数据库恢复选项和磁盘I/O错误检查 460

16.2.7 控制数据库的状态和属性 462

16.2.8 数据库磁盘空间管理 464

16.3 数据库的维护 467

16.3.1 检查磁盘空间分配结构的一致性——DBCC CHECKALLOC 467

16.3.2 检查数据库对象的结构和逻辑完整性——DBCC CHECKDB 469

16.3.3 检查文件组分配和结构完整性——DBCC CHECKFILEGROUP 470

16.3.4 检查页和结构的完整性——DBCC CHECKTABLE 471

16.3.5 检查约束的完整性——DBCC CHECKCONSTRAINTS 472

16.4 数据库的备份与恢复 474

16.4.1 数据库备份与恢复的基本概念 474

16.4.2 备份操作相关的Transact-SQL语句 476

16.4.3 完整备份——BACKUP DATABASE 477

16.4.4 创建逻辑备份设备——sp_addumpdevice 480

16.4.5 事务日志备份——BACKUP LOG 481

16.4.6 差异备份——DIFFERENTIAL 483

16.4.7 文件备份 484

16.4.8 部分备份——READ WRITE FILEGROUPS 486

16.4.9 查询备份集的元数据 487

16.4.10 数据库还原——RESTORE DATABASE 489

16.5 信息架构视图 494

16.5.1 信息架构视图简介 494

16.5.2 TABLES信息架构视图 495

16.5.3 VIEWS信息架构视图 496

16.5.4 COLUMNS信息架构视图 497

16.5.5 ROUTINES信息架构视图 499

16.6 小结 500