第1章 回顾SQL Server中的对象
1.1 本书提供什么
1.2 数据库对象概览
1.2.1 数据库对象
1.2.2 事务日志
1.2.3 最基本的数据库对象:表
1.2.4 模式
1.2.5 文件组
1.2.6 关系图
1.2.7 视图
1.2.8 存储过程
1.2.9 用户定义函数
1.2.10 用户和角色
1.2.11 规则
1.2.12 默认值
1.2.13 用户定义数据类型
1.2.14 全文目录
1.3 SQL Server数据类型
1.4 SQL Server对象标识符
1.4.1 对什么命名
1.4.2 命名规则
1.5 小结
第2章 工具
2.1 联机丛书
2.2 SQL Server配置管理器
2.2.1 服务管理
2.2.2 网络配置
2.2.3 协议
2.2.4 客户端配置
2.3 SQL Server Management Studio
2.3.1 启动
2.3.2 查询窗口
2.4 SQL Server Business Intelligence Development Studio
2.5 SQL Server Integration Services(SSIS)
2.6 Reporting Services
2.7 大容量复制程序
2.8 SQL Server Profiler
2.9 sqlcmd
2.10 小结
第3章 T-SQL基础
3.1 基本的SELECT语句
3.1.1 SELECT语句和FROM子句
3.1.2 JOIN子句
3.1.3 WHERE子句
3.1.4 ORDER BY
3.1.5 使用GROUP BY子句聚集数据
3.1.6 使用HAVING子句在组上放置条件
3.1.7 使用FOR XML子句进行XML输出
3.1.8 使用OPTION子句指定提示
3.1.9 DISTINCT
3.2 用INSERT语句添加数据
3.3 通过UPDATE语句更改现有的数据
3.4 DELETE语句
3.5 替代的联结语法
3.5.1 替代的INNER JOIN
3.5.2 替代的OUTER JOIN
3.5.3 替代的CROSS JOIN
3.6 UNION
3.7 小结
第4章 创建和修改表
4.1 SQL Server中的对象名
4.1.1 模式名(又名:所有权)
4.1.2 数据库名
4.1.3 按照服务器命名
4.2 CREATE语句
4.2.1 CREATE DATABASE
4.2.2 CREATE TABLE
4.3 ALTER语句
4.3.1 ALTER DATABASE
4.3.2 ALTER TABLE
4.4 DROP语句
4.5 使用GUI工具
4.5.1 创建或编辑数据库
4.5.2 创建和编辑表
4.6 小结
第5章 回顾键和约束
5.1 约束的类型
5.1.1 域约束
5.1.2 实体约束
5.1.3 引用完整性约束
5.2 约束的命名
5.3 键约束
5.3.1 主键约束
5.3.2 外键约束
5.3.3 UNIQUE约束
5.4 CHECK约束
5.5 DEFAULT约束
5.5.1 在CREATE TABLE语句中定义DEFAULT约束
5.5.2 在现有的表上添加DEFAULT约束
5.6 禁用约束
5.6.1 创建约束时忽略不正确的数据
5.6.2 临时禁用现有的约束
5.7 规则和默认值:约束的同类
5.7.1 规则
5.7.2 默认值
5.7.3 确定哪个表或数据类型上使用了指定的规则或默认值
5.8 保证数据完整性的触发器
5.9 选择应用使用什么
5.10 小结
第6章 更深入的问题:高级查询
6.1 什么是子查询
6.2 构建嵌套的子查询
6.2.1 使用单值SELECT语句的嵌套查询
6.2.2 使用返回多个值的子查询的嵌套查询
6.2.3 ANY、SOME和ALL运算符
6.3 相关子查询
6.3.1 相关子查询如何工作
6.3.2 WHERE子句中的相关子查询
6.3.3 SELECT列表中的相关子查询
6.4 派生表
6.5 EXISTS运算符
6.6 混合数据类型:CAST和CONVERT
6.7 使用外部调用执行复杂的操作
6.8 性能考虑
6.9 小结
第7章 挑战设计
7.1 规范化回顾
7.1.1 从何处入手
7.1.2 达到第三范式
7.1.3 其他规范形式
7.2 关系
7.3 关系图
7.3.1 几种关系类型
7.3.2 实体框
7.3.3 关系线
7.3.4 终结器
7.4 逻辑设计和物理设计
7.4.1 逻辑模型的用途
7.4.2 逻辑模型的组成部分
7.5 处理基于文件的信息
7.6 子类别
7.6.1 子类别的类型
7.6.2 明了什么是什么——实现子类别
7.6.3 子类别的物理实现
7.6.4 通过子类别增加可扩展性
7.7 数据库重用
7.7.1 可重用数据库的候选
7.7.2 如何分解事物
7.7.3 可重用性的高昂代价
7.8 非规范化
7.9 为可伸缩性进行分区
7.10 SQL Server关系图工具
7.10.1 表
7.10.2 处理约束
7.11 小结
第8章 SQL Server——存储和索引结构
8.1 SQL Server存储
8.1.1 数据库
8.1.2 文件
8.1.3 区段
8.1.4 页
8.1.5 行
8.1.6 全文目录
8.2 理解索引
8.2.1 “B”还是非“B”:B树
8.2.2 在SQL Server中如何访问数据
8.2.3 索引类型和索引导航
8.3 创建、修改和删除索引
8.3.1 CREATE INDEX语句
8.3.2 创建XML索引
8.3.3 随约束隐含创建的索引
8.3.4 ALTER INDEX
8.3.5 DROP INDEX
8.4 明智地选择:决定何时何地使用何种索引
8.4.1 选择性
8.4.2 注意代价:当少变成多时
8.4.3 选择聚集索引
8.4.4 列顺序问题
8.4.5 删除索引
8.4.6 使用数据库引擎优化顾问
8.5 维护索引
8.5.1 碎片
8.5.2 检测碎片
8.6 小结
第9章 视图
9.1 简单视图
9.2 更复杂的视图
9.3 使用T-SQL编辑视图
9.4 删除视图
9.5 审查:显示已有的代码
9.6 保护代码:加密视图
9.7 关于模式绑定
9.8 使用VIEW_METADATA让视图看起来像一个表
9.9 索引(具体化)视图
9.10 分区视图
9.11 小结
第10章 脚本和批处理
10.1 脚本基础
10.1.1 USE语句
10.1.2 声明变量
10.1.3 使用@@ IDENTITY
10.1.4 使用@@ ROWCOUNT
10.2 批处理
10.2.1 批处理中的错误
10.2.2 何时使用批处理
10.3 SQLCMD
10.4 动态SQL:使用EXE命令生成代码
10.5 流控制语句
10.5.1 IF...ELSE语句
10.5.2 ELSE子句
10.5.3 CASE语句
10.5.4 使用WHILE语句进行循环
10.5.5 WAITFOR语句
10.5.6 TRY/CATCH块
10.6 小结
第11章 存储过程和用户定义函数
11.1 创建存储过程:基本语法
11.2 用ALTER更改存储过程
11.3 删除存储过程
11.4 参数
11.4.1 声明参数
11.4.2 创建输出参数
11.5 通过返回值确认成功或失败
11.6 错误处理
11.6.1 应该采取的方式
11.6.2 手工生成错误
11.6.3 添加你自己的自定义错误消息
11.7 存储过程能提供什么
11.7.1 创建可调用的过程
11.7.2 因安全而使用存储过程
11.7.3 存储过程和性能
11.8 扩展存储过程
11.9 递归概览
11.10 用户定义函数
11.10.1 什么是UDF
11.10.2 返回标量值的UDF
11.11 返回表的UDF
11.12 调试
11.12.1 为进行调试而设置SQL Server
11.12.2 启动调试器
11.12.3 调试器的组成
11.12.4 调试器启动后使用
11.13 小结
第12章 事务和锁
12.1 事务
12.1.1 BEGIN TRAN
12.1.2 COMMIT TRAN
12.1.3 ROLLBACK TRAN
12.1.4 SAVE TRAN
12.2 SQL Server日志的工作原理
12.2.1 使用CHECKPOINT命令
12.2.2 在恢复时使用CHECKPOINT
12.2.3 正常的服务器关机
12.2.4 数据库选项的更改
12.2.5 当Truncate on Checkpoint选项活动时
12.2.6 当恢复时间超出Recovery Interval选项的设置时
12.2.7 失败和恢复
12.2.8 隐式事务
12.3 锁和并发
12.3.1 通过锁可以防止什么问题
12.3.2 可锁的资源
12.3.3 锁升级以及锁对性能的影响
12.3.4 锁模式
12.3.5 锁的兼容性
12.3.6 指定特定的锁类型--优化器提示
12.4 设置隔离级别
12.4.1 READ COMMITTED
12.4.2 READ UNCOMMITTED
12.4.3 REPEATABLE READ
12.4.4 SERIALIZABLE
12.5 处理死锁(也称作“A 1205”)
12.5.1 SQL Server是如何判断存在死锁的
12.5.2 死锁牺牲品是如何选择的
12.5.3 避免死锁
12.6 小结
第13章 触发器
13.1 什么是触发器
13.1.1 ON
13.1.2 WITH ENCRYPTION
13.1.3 FOR
· · · · · · (
收起)