需要电子书的同学可以去我们的数据圈交流星球问问看,可能有惊喜~~
本书是一本 SQL的入门书,介绍如何使用最常用的 SQL语言维护和查询数据库信息。书中介绍了各种 DBMS,关系模型理论,SQL语法,从表中检索数据,操作符和函数,汇总和分组数据,联结,子查询,集合操作,创建、更改和删除表,索引,视图,事务和 SQL技巧等。本书比较了各种 DBMS中的 SQL实现,并给出大量实例代码及经验技巧。
本书适合 SQL初学者,同时也可作为数据库应用开发人员和最终用户的参考书。
第1章 DBMS介绍 1
1.1 运行SQL程序 1
1.2 Microsoft Access 3
1.3 Microsoft SQL Server 6
1.3.1 SQL Server 2000 7
1.3.2 SQL Server 2005/2008 9
1.4 Oracle 10
1.5 IBM DB2 12
1.6 MySQL 16
1.7 PostgreSQL 17
第2章 关系模型 20
2.1 表、列和行 21
2.1.1 表 21
2.1.2 列 21
2.1.3 行 22
2.2 主键 24
2.3 外键 25
2.4 联系 26
2.4.1 一对一 27
2.4.2 一对多 27
2.4.3 多对多 28
2.5 规范化 29
2.5.1 第一范式 29
2.5.2 第二范式 30
2.5.3 第三范式 31
2.5.4 其他范式 32
2.6 示例数据库 33
2.6.1 表authors 33
2.6.2 表publishers 34
2.6.3 表titles 35
2.6.4 表titles_authors 35
2.6.5 表royalties 36
2.7 创建示例数据库 37
第3章 SQL基础 40
3.1 SQL语法 40
3.2 SQL标准和一致性 42
3.3 标识符 43
3.4 数据类型 44
3.5 字符串类型 45
3.6 二进制大型对象类型 47
3.7 精确数字类型 48
3.8 近似数字类型 49
3.9 布尔类型 50
3.10 日期和时间类型 51
3.11 时间间隔类型 53
3.12 唯一标识符 54
3.13 其他数据类型 55
3.14 空值 55
第4章 从表中检索数据 58
4.1 使用SELECT和FROM检索列 58
4.2 使用AS创建列的别名 61
4.3 使用DISTINCT消除重复的行 62
4.4 使用ORDER BY排序行 63
4.5 使用WHERE筛选行 68
4.6 使用AND、OR和NOT组合及求反条件 71
4.6.1 AND操作符 71
4.6.2 OR操作符 72
4.6.3 NOT操作符 73
4.6.4 AND、OR和NOT一起使用 74
4.7 使用LIKE匹配模式 77
4.8 使用BETWEEN进行范围筛选 81
4.9 使用IN进行列表筛选 83
4.10 使用IS NULL测试空值 85
第5章 操作符和函数 88
5.1 创建派生列 88
5.2 执行算术运算 89
5.3 确定计算的顺序 92
5.4 使用||连接串 92
5.5 使用SUBSTRING()提取子串 95
5.6 使用UPPER()和LOWER()更改串的大小写 97
5.7 使用TRIM()修整字符 99
5.8 使用CHARACTER_LENGTH()得到串长度 101
5.9 使用POSITION()查找子串 103
5.10 执行日期及时间间隔运算 105
5.11 获得当前日期和时间 106
5.12 获得用户信息 108
5.13 使用CAST()转换数据类型 109
5.14 使用CASE计算条件值 112
5.15 使用COALESCE()检查空值 115
5.16 使用NULLIF()比较表达式 116
第6章 汇总和分组数据 118
6.1 使用聚合函数 118
6.2 创建聚合表达式 119
6.3 使用MIN()查找最小值 120
6.4 使用MAX()查找最大值 120
6.5 使用SUM()计算总和 121
6.6 使用AVG()计算平均值 122
6.7 使用COUNT()统计行数 124
6.8 使用DISTINCT聚合不重复的值 125
6.9 使用GROUP BY分组行 127
6.10 使用HAVING筛选分组 132
第7章 联结 135
7.1 限定列名 135
7.2 使用AS创建表的别名 136
7.3 使用联结 137
7.4 使用JOIN或WHERE创建联结 139
7.5 使用CROSS JOIN创建交叉联结 141
7.6 使用NATURAL JOIN创建自然联结 143
7.7 使用INNER JOIN创建内联结 146
7.8 使用OUTER JOIN创建外联结 165
7.9 创建自联结 173
第8章 子查询 177
8.1 理解子查询 177
8.2 子查询语法 179
8.3 子查询和联结 179
8.4 简单子查询和相关子查询 182
8.4.1 简单子查询 183
8.4.2 相关子查询 183
8.5 在子查询中限定列名 186
8.6 子查询中的空值 187
8.7 使用子查询作为列表达式 188
8.8 使用比较操作符比较子查询的值 191
8.9 使用IN测试集合成员资格 194
8.10 使用ALL比较所有子查询的值 200
8.11 使用ANY比较某些子查询的值 202
8.12 使用EXISTS检测存在性 205
8.13 比较等价查询 209
第9章 集合操作 212
9.1 使用UNION合并行 212
9.2 使用INTERSECT查找相同行 217
9.3 使用EXCEPT查找不同行 218
第10章 插入、更新和删除行 220
10.1 显示表结构 220
10.2 使用INSERT插入行 223
10.3 使用UPDATE更新行 228
10.4 使用DELETE删除行 232
第11章 创建、更改和删除表 235
11.1 创建表 235
11.2 理解约束 236
11.3 使用CREATE TABLE创建新表 236
11.4 使用NOT NULL禁止空值 238
11.5 使用DEFAULT确定默认值 240
11.6 使用PRIMARY KEY指定主键 242
11.7 使用FOREIGN KEY指定外键 244
11.8 使用UNIQUE确保值唯一 248
11.9 使用CHECK创建检查约束 250
11.10 使用CREATE TEMPORARY TABLE创建临时表 252
11.11 使用CREATE TABLE AS利用已存在表创建新表 254
11.12 使用ALTER TABLE修改表 258
11.13 使用DROP TABLE删除表 259
第12章 索引 261
12.1 使用CREATE INDEX创建索引 261
12.2 使用DROP INDEX删除索引 264
第13章 视图 265
13.1 使用CREATE VIEW创建视图 265
13.2 通过视图检索数据 269
13.3 通过视图修改数据 271
13.3.1 通过视图插入行 271
13.3.2 通过视图更新行 272
13.3.3 通过视图删除行 273
13.4 使用DROP VIEW删除视图 274
第14章 事务 275
第15章 SQL技巧 280
15.1 动态统计 280
15.2 产生序列 283
15.3 发现等差数列、递增数列和等值数列 287
15.4 限定返回行的数量 291
15.4.1 Microsoft Access 292
15.4.2 Microsoft SQL Server 293
15.4.3 Oracle 294
15.4.4 IBM DB2 295
15.4.5 MySQL 296
15.4.6 PostgreSQL 297
15.5 分配排名 298
15.6 计算修整均值 299
15.7 随机选取行 300
15.8 处理重复值 302
15.9 创建电话列表 304
15.10 检索元数据 305
15.10.1 Microsoft Access 305
15.10.2 Microsoft SQL Server 305
15.10.3 Oracle 306
15.10.4 IBM DB2 307
15.10.5 MySQL 307
15.10.6 PostgreSQL 308
15.11 处理日期 308
15.11.1 Microsoft Access 309
15.11.2 Microsoft SQL Server 310
15.11.3 Oracle 310
15.11.4 IBM DB2 311
15.11.5 MySQL 312
15.11.6 PostgreSQL 313
15.12 计算中值 315
15.13 查询极值 316
15.14 改变动态统计的中流 317
15.15 旋转结果 318
15.16 处理层次结构 320
索引 326
1.1 运行SQL程序 1
1.2 Microsoft Access 3
1.3 Microsoft SQL Server 6
1.3.1 SQL Server 2000 7
1.3.2 SQL Server 2005/2008 9
1.4 Oracle 10
1.5 IBM DB2 12
1.6 MySQL 16
1.7 PostgreSQL 17
第2章 关系模型 20
2.1 表、列和行 21
2.1.1 表 21
2.1.2 列 21
2.1.3 行 22
2.2 主键 24
2.3 外键 25
2.4 联系 26
2.4.1 一对一 27
2.4.2 一对多 27
2.4.3 多对多 28
2.5 规范化 29
2.5.1 第一范式 29
2.5.2 第二范式 30
2.5.3 第三范式 31
2.5.4 其他范式 32
2.6 示例数据库 33
2.6.1 表authors 33
2.6.2 表publishers 34
2.6.3 表titles 35
2.6.4 表titles_authors 35
2.6.5 表royalties 36
2.7 创建示例数据库 37
第3章 SQL基础 40
3.1 SQL语法 40
3.2 SQL标准和一致性 42
3.3 标识符 43
3.4 数据类型 44
3.5 字符串类型 45
3.6 二进制大型对象类型 47
3.7 精确数字类型 48
3.8 近似数字类型 49
3.9 布尔类型 50
3.10 日期和时间类型 51
3.11 时间间隔类型 53
3.12 唯一标识符 54
3.13 其他数据类型 55
3.14 空值 55
第4章 从表中检索数据 58
4.1 使用SELECT和FROM检索列 58
4.2 使用AS创建列的别名 61
4.3 使用DISTINCT消除重复的行 62
4.4 使用ORDER BY排序行 63
4.5 使用WHERE筛选行 68
4.6 使用AND、OR和NOT组合及求反条件 71
4.6.1 AND操作符 71
4.6.2 OR操作符 72
4.6.3 NOT操作符 73
4.6.4 AND、OR和NOT一起使用 74
4.7 使用LIKE匹配模式 77
4.8 使用BETWEEN进行范围筛选 81
4.9 使用IN进行列表筛选 83
4.10 使用IS NULL测试空值 85
第5章 操作符和函数 88
5.1 创建派生列 88
5.2 执行算术运算 89
5.3 确定计算的顺序 92
5.4 使用||连接串 92
5.5 使用SUBSTRING()提取子串 95
5.6 使用UPPER()和LOWER()更改串的大小写 97
5.7 使用TRIM()修整字符 99
5.8 使用CHARACTER_LENGTH()得到串长度 101
5.9 使用POSITION()查找子串 103
5.10 执行日期及时间间隔运算 105
5.11 获得当前日期和时间 106
5.12 获得用户信息 108
5.13 使用CAST()转换数据类型 109
5.14 使用CASE计算条件值 112
5.15 使用COALESCE()检查空值 115
5.16 使用NULLIF()比较表达式 116
第6章 汇总和分组数据 118
6.1 使用聚合函数 118
6.2 创建聚合表达式 119
6.3 使用MIN()查找最小值 120
6.4 使用MAX()查找最大值 120
6.5 使用SUM()计算总和 121
6.6 使用AVG()计算平均值 122
6.7 使用COUNT()统计行数 124
6.8 使用DISTINCT聚合不重复的值 125
6.9 使用GROUP BY分组行 127
6.10 使用HAVING筛选分组 132
第7章 联结 135
7.1 限定列名 135
7.2 使用AS创建表的别名 136
7.3 使用联结 137
7.4 使用JOIN或WHERE创建联结 139
7.5 使用CROSS JOIN创建交叉联结 141
7.6 使用NATURAL JOIN创建自然联结 143
7.7 使用INNER JOIN创建内联结 146
7.8 使用OUTER JOIN创建外联结 165
7.9 创建自联结 173
第8章 子查询 177
8.1 理解子查询 177
8.2 子查询语法 179
8.3 子查询和联结 179
8.4 简单子查询和相关子查询 182
8.4.1 简单子查询 183
8.4.2 相关子查询 183
8.5 在子查询中限定列名 186
8.6 子查询中的空值 187
8.7 使用子查询作为列表达式 188
8.8 使用比较操作符比较子查询的值 191
8.9 使用IN测试集合成员资格 194
8.10 使用ALL比较所有子查询的值 200
8.11 使用ANY比较某些子查询的值 202
8.12 使用EXISTS检测存在性 205
8.13 比较等价查询 209
第9章 集合操作 212
9.1 使用UNION合并行 212
9.2 使用INTERSECT查找相同行 217
9.3 使用EXCEPT查找不同行 218
第10章 插入、更新和删除行 220
10.1 显示表结构 220
10.2 使用INSERT插入行 223
10.3 使用UPDATE更新行 228
10.4 使用DELETE删除行 232
第11章 创建、更改和删除表 235
11.1 创建表 235
11.2 理解约束 236
11.3 使用CREATE TABLE创建新表 236
11.4 使用NOT NULL禁止空值 238
11.5 使用DEFAULT确定默认值 240
11.6 使用PRIMARY KEY指定主键 242
11.7 使用FOREIGN KEY指定外键 244
11.8 使用UNIQUE确保值唯一 248
11.9 使用CHECK创建检查约束 250
11.10 使用CREATE TEMPORARY TABLE创建临时表 252
11.11 使用CREATE TABLE AS利用已存在表创建新表 254
11.12 使用ALTER TABLE修改表 258
11.13 使用DROP TABLE删除表 259
第12章 索引 261
12.1 使用CREATE INDEX创建索引 261
12.2 使用DROP INDEX删除索引 264
第13章 视图 265
13.1 使用CREATE VIEW创建视图 265
13.2 通过视图检索数据 269
13.3 通过视图修改数据 271
13.3.1 通过视图插入行 271
13.3.2 通过视图更新行 272
13.3.3 通过视图删除行 273
13.4 使用DROP VIEW删除视图 274
第14章 事务 275
第15章 SQL技巧 280
15.1 动态统计 280
15.2 产生序列 283
15.3 发现等差数列、递增数列和等值数列 287
15.4 限定返回行的数量 291
15.4.1 Microsoft Access 292
15.4.2 Microsoft SQL Server 293
15.4.3 Oracle 294
15.4.4 IBM DB2 295
15.4.5 MySQL 296
15.4.6 PostgreSQL 297
15.5 分配排名 298
15.6 计算修整均值 299
15.7 随机选取行 300
15.8 处理重复值 302
15.9 创建电话列表 304
15.10 检索元数据 305
15.10.1 Microsoft Access 305
15.10.2 Microsoft SQL Server 305
15.10.3 Oracle 306
15.10.4 IBM DB2 307
15.10.5 MySQL 307
15.10.6 PostgreSQL 308
15.11 处理日期 308
15.11.1 Microsoft Access 309
15.11.2 Microsoft SQL Server 310
15.11.3 Oracle 310
15.11.4 IBM DB2 311
15.11.5 MySQL 312
15.11.6 PostgreSQL 313
15.12 计算中值 315
15.13 查询极值 316
15.14 改变动态统计的中流 317
15.15 旋转结果 318
15.16 处理层次结构 320
索引 326