内容简介:
《SQL权威指南(第4版)》为SQL名著中文版,兼顾技术与实践,全面细致介绍高级技术,致力于打造SQL编程专家。《SQL权威指南(第4版)》阐释了数据库设计、优化和操作的各方面内容,提供了成为SQL编程专业人士所需的技术与技巧、针对新旧挑战性难题的优秀解决方案、专业的思考方式(以保证程序的正确性与高效性),并涉及了数据库设计与规范化、SQL数据类型、查询、分组、集合操作、优化等主题。另外,JoeCelko以通俗易懂的语言叙述了一些关键问题,比如避免使用过多NULL的原因及查询优化方式等。《SQL权威指南(第4版)》适合中高级SQL编程人员学习参考。
资源目录:
第1章 数据库与文件系统
1.1 实体表
1.2 关系表
1.3 行与记录
1.4 列与字段
1.5 模式对象
1.6 CREATE SCHEMA语句
第2章 事务与并发控制
2.1 会话
2.2 事务与ACID
2.2.1 原子性
2.2.2 一致性
2.2.3 隔离性
2.2.4 持久性
2.3 并发控制
2.3.1 三种现象
2.3.2 隔离级别
2.4 保守式并发控制
2.5 快照隔离与乐观式并发
2.6 逻辑并发控制
2.7 死锁与活锁
第3章 数据库模式对象
3.1 CREATE SCHEMA语句
3.2 CREATE PROCEDURE、CREATE FUNCTION以及CREATE TRIGGER语句
3.3 CREATE DOMAIN语句
3.4 创建序列
3.5 创建断言
3.5.1 为模式级约束使用视图
3.5.2 为约束使用主键和断言
3.6 字符集相关结构
3.6.1 创建字符集
3.6.2 创建排序规则
3.6.3 创建翻译
第4章 定位数据和特殊数值
4.1 显式的物理定位器
4.1.1 ROWID和物理磁盘地址
4.1.2 标识列
4.2 生成的标识符
4.2.1 GUID
4.2.2 UUID
4.3 序列生成函数
4.4 预分配值
4.5 特殊序列
4.5.1 Series表
4.5.2 素数
4.5.3 随机顺序值
4.5.4 其他序列
第5章 基础表和相关元素
5.1 CREATE TABLE语句
5.1.1 列约束
5.1.2 DEFAULT子句
5.1.3 NOT NULL约束
5.1.4 CHECK()约束
5.1.5 UNIQUE以及PRIMARY KEY约束
5.1.6 REFERENCES子句
5.2 嵌套UNIQUE约束
5.2.1 重叠键
5.2.2 单列唯一性与多列唯一性
5.3 CREATE ASSERTION约束
5.4 临时表
5.5 表操作
5.5.1 DROP TABLE<表名>
5.5.2 ALTER TABLE
5.6 避免属性分割
5.6.1 表级属性分割
5.6.2 行级属性分割
5.7 在DDL中表现类层次关系
5.8 显式物理定位器
5.9 自增列
5.9.1 ROWID与物理磁盘地址
5.9.2 标识列
5.9.3 对比标识列和序列
5.10 生成标识符
5.10.1 行业标准的唯一标识符
5.10.2 国防部的唯一标识符
5.10.3 序列生成函数
5.10.4 唯一值生成器
5.10.5 验证源
5.11 关于重复行
5.12 其他模式对象
5.13 临时表
5.14 CREATE DOMAIN语句
5.15 CREATE TRIGGER语句
5.16 CREATE PROCEDURE语句
5.17 DECLARE CURSOR语句
5.17.1 如何使用游标
5.17.2 位置更新及删除语句
第6章 过程式、半过程式以及声明式编程
6.1 软件工程基本原理
6.2 内聚性
6.3 耦合度
6.4 大跨越
6.4.1 一个常见的错误
6.4.2 一处改进
6.5 重写技巧
6.5.1 数据表和生成器代码
6.5.2 用计算替代查找
6.5.3 斐波那契数列
6.6 谓词函数
6.7 过程化分解和逻辑分解
6.7.1 过程式分解方案
6.7.2 逻辑分解方案
第7章 过程式结构
7.1 创建过程
7.2 创建触发器
7.3 游标
7.3.1 DECLARE CURSOR语句
7.3.2 ORDER BY子句
7.3.3 OPEN语句
7.3.4 FETCH语句
7.3.5 CLOSE语句
7.3.6 DEALLOCATE语句
7.3.7 如何使用游标
7.3.8 位置更新及删除语句
7.4 序列
7.5 生成列
7.6 表函数
第8章 辅助表
8.1 序列表
8.1.1 对列表进行枚举
8.1.2 将序列映射为循环
8.1.3 取代迭代循环
8.2 查找辅助表
8.2.1 简单转换辅助表
8.2.2 多转换值辅助表
8.2.3 多参数辅助表
8.2.4 范围辅助表
8.2.5 层次结构辅助表
8.2.6 “一个真正的查找表”
8.3 辅助函数表
8.3.1 用辅助表求反函数
8.3.2 用辅助函数表进行插值
8.4 全局常量表
8.4.1 预分配值
8.4.2 素数
8.4.3 斐波那契数列
8.4.4 随机顺序值
8.5 把过程代码转换成表时的注意事项
第9章 规范化
9.1 函数依赖和多值依赖
9.2 第一范式(1NF)
9.3 第二范式(2NF)
9.4 第三范式(3NF)
9.5 基本关键字范式(EKNF)
9.6 Boyce-Codd范式(BCNF)
9.7 第四范式(4NF)
9.8 第五范式(5NF)
9.9 域-键范式(DKNF)
9.10 规范化的实用技巧
9.11 键类型
9.11.1 自然键
9.11.2 人工键
9.11.3 对外暴露的物理定位器
9.12 非规范化的实用技巧
第10章 SQL的数值数据
10.1 数值类型
10.2 数值类型的转换
10.2.1 数值的舍入和截断
10.2.2 CAST()函数
10.3 四则运算函数
10.4 算术运算和NULL
10.5 值与NULL的相互转换
10.5.1 NULLIF()函数
10.5.2 COALESCE()函数
10.6 数学函数
10.6.1 数学运算符
10.6.2 指数函数
10.6.3 标量函数
10.6.4 将数值转换为文字
10.7 唯一值生成器
10.7.1 存有间隙的序列
10.7.2 预分配数值
10.8 IP地址
10.8.1 CHAR(39)存储
10.8.2 二进制存储
10.8.3 使用多个单独的SMALLINT
第11章 SQL中的时间数据类型
11.1 关于日历标准的说明
11.2 SQL时间数据类型
11.2.1 时间的内部表示
11.2.2 日期格式标准
11.2.3 处理时间戳
11.2.4 处理时间
11.2.5 时区和夏令时
11.3 INTERVAL数据类型
11.4 时间算术
11.5 时间数据模型的特性
11.5.1 为持续时间建模
11.5.2 持续时间之间的关系
第12章 字符数据类型
12.1 SQL字符串问题
12.1.1 字符串相等问题
12.1.2 字符串排序问题
12.1.3 字符串分组问题
12.2 标准字符串函数
12.3 常见的厂商扩展
12.4 Cutter表
12.5 嵌套替换
第13章 NULL:SQL中的缺失数据
13.1 空表和缺失表
13.2 列中的缺失值
13.3 上下文和缺失值
13.4 比较NULL
13.5 NULL和逻辑
13.5.1 子查询谓词中的NULL
13.5.2 逻辑值谓词
13.6 算术中的NULL值
13.7 函数中的NULL值
13.8 NULL和宿主语言
13.9 NULL的设计忠告
13.10 关于多NULL值的说明
第14章 多列数据元素
14.1 距离函数
14.2 在SQL中存储IPv4地址
14.2.1 使用单个VARCHAR(15)列表示IPv4地址
14.2.2 使用一个INTEGER列表示IPv4地址
14.2.3 使用四个SMALLINT列表示IPv4地址
14.3 在SQL中存储IPv6地址
14.4 货币与其他单位的转换
14.5 社会安全号
14.6 有理数
第15章 表操作
15.1 DELETE FROM语句
15.1.1 DELETE FROM子句
15.1.2 WHERE子句
15.1.3 根据辅助表中的数据执行删除
15.1.4 在相同表内进行删除
15.1.5 不用声明引用完整性在多个表中进行删除
15.2 INSERT INTO语句
15.2.1 INSERT INTO子句
15.2.2 插入的性质
15.2.3 批量装载和卸载实用程序
15.3 UPDATE语句
15.3.1 UPDATE子句
15.3.2 WHERE子句
15.3.3 SET子句
15.3.4 利用第二张表进行更新
15.3.5 在UPDATE中使用CASE表达式
15.4 常见厂商扩展的缺陷说明
15.5 MERGE语句