第一部分关系型数据库和SQL
第1章何谓关系型数据库.......................................2
1.1数据库类型..........................................................2
1.2关系模型简史......................................................2
1.2.1起源..........................................................3
1.2.2关系型数据库系统...................................3
1.3关系型数据库剖析...............................................4
1.3.1表..............................................................4
1.3.2列..............................................................5
1.3.3行..............................................................5
1.3.4键..............................................................5
1.3.5视图..........................................................6
1.3.6关系..........................................................6
1.4学习关系型数据库有何好处...............................9
1.5小结...................................................................10
第2章确保数据库结构合理.................................11
2.1为何在本书开头讨论数据库设计......................11
2.2为何要关心数据库结构是否合理......................11
2.3微调列................................................................12
2.3.1列名的组成............................................12
2.3.2消除不完善的地方.................................13
2.3.3分解多部分列.........................................14
2.3.4分解多值列............................................15
2.4微调表................................................................17
2.4.1表名的组成............................................17
2.4.2确保结构合理.........................................18
2.4.3消除多余的重复列.................................18
2.4.4标识是关键............................................23
2.5建立合理的关系................................................25
2.5.1指定删除规则.........................................26
2.5.2指定参与类型.........................................27
2.5.3指定参与程度.........................................28
2.6就这些吗............................................................29
2.7小结...................................................................29
第3章SQL简史....................................................31
3.1SQL的起源.......................................................31
3.2早期的厂商实现................................................32
3.3标准应运而生...................................................32
3.4ANSI/ISO标准的发展历程..............................33
3.5商用实现...........................................................36
3.6展望未来...........................................................36
3.7为何要学习SQL...............................................36
3.8本书基于哪个SQL版本...................................37
3.9小结...................................................................37
第二部分SQL基础
第4章创建简单查询.............................................40
4.1SELECT简介....................................................40
4.2SELECT语句....................................................41
4.3说点题外话:数据和信息................................42
4.4将请求转换为SQL...........................................43
4.4.1更广阔的视野........................................45
4.4.2使用简写请求所有列............................46
4.5消除重复行.......................................................47
4.6对信息进行排序................................................48
4.6.1重要的事先说:排序序列.....................49
4.6.2排序.......................................................49
4.7保存所做的工作................................................51
4.8语句举例...........................................................51
4.9小结...................................................................57
4.10练习.................................................................57
第5章获取除简单列外的其他信息...................59
5.1何谓表达式.......................................................59
5.2你要表示哪些类型的数据................................60
5.3修改数据类型:CAST函数.............................61
5.4指定显式值.......................................................62
5.4.1字符串字面量........................................62
5.4.2数值字面量............................................63
5.4.3日期时间字面量....................................63xvi目录
5.5表达式类型........................................................65
5.5.1拼接表达式............................................65
5.5.2数学表达式............................................66
5.5.3日期和时间算术表达式.........................68
5.6在SELECT子句中使用表达式.........................71
5.6.1使用拼接表达式.....................................71
5.6.2给表达式命名........................................72
5.6.3使用数学表达式.....................................73
5.6.4使用日期表达式.....................................73
5.6.5说点题外话:值表达式.........................74
5.7空值:Null........................................................75
5.7.1Null简介................................................76
5.7.2Null带来的问题....................................76
5.8语句举例............................................................77
5.9小结...................................................................81
5.10练习.................................................................82
第6章筛选数据......................................................84
6.1使用WHERE提炼信息.....................................84
6.1.1WHERE子句.........................................85
6.1.2使用WHERE子句.................................86
6.2定义查找条件....................................................87
6.2.1比较........................................................87
6.2.2范围........................................................91
6.2.3集成员资格............................................92
6.2.4模式匹配................................................93
6.2.5Null........................................................95
6.2.6使用NOT排除行...................................96
6.3使用多个条件....................................................98
6.3.1AND和OR简介....................................98
6.3.2再谈排除行..........................................102
6.3.3优先级..................................................103
6.3.4检查两个范围是否重叠.......................105
6.4再谈Null:一个注意事项...............................106
6.5以不同的方式表示条件...................................109
6.6语句举例..........................................................109
6.7小结.................................................................114
6.8练习.................................................................115
第三部分使用多个表
第7章集合思维....................................................118
7.1何谓集合..........................................................118
7.2集合运算..........................................................119
7.2.1交集......................................................119
7.2.2差集......................................................122
7.2.3并集......................................................126
7.3SQL集合运算.................................................128
7.3.1经典集合运算和SQL...........................128
7.3.2查找都有的值:INTERSECT..............128
7.3.3查找没有的值:EXCEPT(差集).....130
7.3.4合并集合:UNION..............................132
7.4小结.................................................................133
第8章内连接........................................................135
8.1何谓连接..........................................................135
8.2内连接..............................................................135
8.2.1可基于什么进行连接...........................136
8.2.2列引用..................................................136
8.2.3语法......................................................136
8.2.4检查表间关系.......................................144
8.3内连接的用途..................................................145
8.3.1查找相关的行.......................................145
8.3.2查找匹配的值.......................................145
8.4语句举例..........................................................146
8.4.1两个表..................................................146
8.4.2超过两个表..........................................149
8.4.3查找匹配的值.......................................153
8.5小结.................................................................158
8.6练习.................................................................158
第9章外连接........................................................161
9.1何谓外连接......................................................161
9.2左/右外连接.....................................................162
9.3全外连接..........................................................173
9.3.1语法......................................................173
9.3.2基于非键值的全外连接.......................174
9.3.3UNIONJOIN........................................175
9.4外连接的用途..................................................175
9.4.1查找缺失值..........................................175
9.4.2查找部分匹配信息...............................175
9.5语句举例..........................................................176
9.6小结.................................................................184
9.7练习.................................................................184
第10章UNION.....................................................186
10.1何谓UNION..................................................186
10.2使用UNION编写查询..................................187
10.2.1使用简单的SELECT语句...............188
10.2.2合并复杂的SELECT语句...............189
10.2.3多次使用UNION.............................191
10.2.4对UNION的结果集进行排序.........193
10.3UNION的用途..............................................194
10.4语句举例........................................................194
10.5小结...............................................................200
10.6练习...............................................................200目录xvii
第11章子查询......................................................202
11.1何谓子查询....................................................202
11.1.1行子查询..........................................203
11.1.2表子查询..........................................203
11.1.3标量子查询.......................................203
11.2作为列表达式的子查询.................................203
11.2.1语法..................................................204
11.2.2聚合函数COUNT和MAX简介.....205
11.3作为筛选器的子查询.....................................207
11.3.1语法..................................................207
11.3.2可与子查询一起使用的特殊谓词
关键字..............................................208
11.4子查询的用途................................................214
11.4.1将子查询用作列表达式...................214
11.4.2将子查询用作筛选器.......................215
11.5语句举例........................................................215
11.5.1表达式中的子查询...........................215
11.5.2筛选器中的子查询...........................219
11.6小结...............................................................222
11.7练习...............................................................223
第四部分数据汇总和分组
第12章简单汇总..................................................226
12.1聚合函数........................................................226
12.1.1使用COUNT计算行或值的个数.....227
12.1.2使用SUM计算总计.........................229
12.1.3使用AVG计算平均值.....................230
12.1.4使用MAX找出最大值....................231
12.1.5使用MIN找出最小值......................232
12.1.6使用多个函数...................................232
12.2在筛选器中使用聚合函数.............................233
12.3语句举例........................................................234
12.4小结...............................................................238
12.5练习...............................................................238
第13章数据分组..................................................240
13.1为何要将数据分组.........................................240
13.2GROUPBY子句...........................................242
13.2.1语法..................................................242
13.2.2混合使用列和表达式.......................245
13.2.3在WHERE子句中的子查询中
使用GROUPBY..............................246
13.2.4模拟SELECTDISTINCT语句........247
13.3一些限制........................................................247
13.3.1列方面的限制...................................247
13.3.2根据表达式分组...............................248
13.4GROUPBY的用途.......................................249
13.5语句举例.......................................................250
13.6小结...............................................................255
13.7练习...............................................................255
第14章筛选分组数据........................................257
14.1一种新的筛选方式........................................257
14.2在哪里筛选更好............................................259
14.2.1在WHERE还是HAVING子句中
筛选.................................................259
14.2.2避开HAVINGCOUNT陷阱..........261
14.3HAVING的用途...........................................263
14.4语句举例.......................................................264
14.5小结...............................................................268
14.6练习...............................................................269
第五部分修改数据集
第15章更新数据集.............................................272
15.1何谓更新.......................................................272
15.2UPDATE语句...............................................272
15.2.1使用简单的UPDATE表达式.........273
15.2.2说点题外话:事务..........................275
15.2.3更新多列..........................................275
15.2.4使用子查询筛选行..........................276
15.3有些数据库系统允许在UPDATE子句中
使用连接.......................................................278
15.4UPDATE的用途...........................................280
15.5语句举例.......................................................281
15.6小结...............................................................289
15.7练习...............................................................290
第16章插入数据集.............................................291
16.1何谓插入.......................................................291
16.2INSERT语句................................................292
16.2.1插入值.............................................292
16.2.2生成下一个主键值..........................294
16.2.3使用SELECT插入数据..................295
16.3INSERT的用途.............................................299
16.4语句举例.......................................................299
16.5小结...............................................................305
16.6练习...............................................................305
第17章删除数据集.............................................307
17.1何谓删除.......................................................307
17.2DELETE语句...............................................307
17.2.1删除所有行......................................308xviii目录
17.2.2删除某些行......................................309
17.3DELETE的用途............................................311
17.4语句举例........................................................312
17.5小结...............................................................317
17.6练习...............................................................317
第六部分解决棘手问题
第18章否定型问题和多条件型问题...............320
18.1简单地复习集合............................................320
18.1.1满足多个条件的集合.......................320
18.1.2不满足多个条件的集合...................321
18.1.3满足一些条件同时不满足另一些
条件的集合.......................................322
18.2解决否定型问题............................................323
18.2.1使用外连接......................................323
18.2.2使用NOTIN....................................324
18.2.3使用NOTEXISTS...........................325
18.2.4使用GROUPBY/HAVING.............326
18.3根据多个肯定条件查找.................................327
18.3.1使用内连接......................................328
18.3.2使用IN.............................................329
18.3.3使用EXISTS....................................330
18.3.4使用GROUPBY/HAVING.............331
18.4语句举例........................................................333
18.5小结...............................................................343
18.6练习...............................................................343
第19章条件测试.................................................346
19.1条件表达式(CASE)..................................346
19.1.1为何要使用CASE...........................346
19.1.2语法..................................................347
19.2使用CASE解决问题....................................349
19.2.1使用简单型CASE解决问题...........349
19.2.2使用查找型CASE解决问题...........352
19.2.3在WHERE子句中使用CASE........353
19.3语句举例........................................................354
19.4小结...............................................................361
19.5练习...............................................................361
第20章使用非连接数据和“驱动”表...........363
20.1何谓非连接数据............................................363
20.2使用非连接数据解决问题.............................366
20.3使用“驱动”表解决问题.............................367
20.3.1建立驱动表......................................367
20.3.2使用驱动表......................................369
20.4语句举例........................................................371
20.4.1非连接表使用示例...........................372
20.4.2驱动表使用示例...............................377
20.5小结...............................................................381
20.6练习...............................................................382
第21章执行复杂的分组计算............................384
21.1不同分组的合计............................................384
21.2扩展GROUPBY子句...................................386
21.3使用ROLLUP获取分层合计........................387
21.4使用CUBE计算各种组合的汇总.................393
21.5使用GROUPINGSETS合并汇总.................396
21.6分组技术变种................................................398
21.7语句举例........................................................400
21.7.1ROLLUP使用示例...........................401
21.7.2CUBE使用示例...............................402
21.7.3GROUPINGSETS使用示例............404
21.8小结...............................................................405
21.9练习...............................................................405
第22章将数据划分到窗口中............................407
22.1将数据划分到窗口中有何用.........................407
22.2计算行号........................................................419
22.3数据排名........................................................420
22.4将数据划分到五分位区间中.........................424
22.5结合使用窗口和聚合函数.............................426
22.6语句举例........................................................429
22.6.1ROW_NUMBER使用示例..............430
22.6.2RANK、DENSE_RANK和
PERCENT_RANK使用示例............432
22.6.3NTILE使用示例..............................434
22.6.4聚合函数使用示例...........................435
22.7小结...............................................................439
22.8练习...............................................................439
附录ASQL标准语法图.......................................441
附录B示例数据库的结构...................................453
附录C与日期和时间相关的数据类型、
运算和函数................................................460
附录D推荐读物....................................................469
结语.............................................................................470
请关注【51教学网】官方微信公众号,回复“密码”,获取密码。
下一篇:期末奖状模板+称号大全来了
发表评论