SQL编程基础 原书第3版PDF电子书下载
- 电子书积分:15 积分如何计算积分?
- 作 者:(美)JOHNJ.PATRICK著
- 出 版 社:北京:机械工业出版社
- 出版年份:2009
- ISBN:9787111265412
- 页数:491 页
第1章 在表中存储信息 1
简介 1
1-1 什么是SQL 1
1-2 什么是关系数据库?为什么要使用它 2
1-3 为什么学习SQL 3
1-4 本书内容简介 5
表的组成部分 5
1-5 数据存储于表中 5
1-6 一行表示一个对象及其相关信息 6
1-7 一列表示一类信息 7
1-8 单元格是表的最小部分 8
1-9 每个单元格应该只表示一样东西 9
1-10 使用主键列标识每一个行 9
1-11 大部分表都很“瘦长” 10
表的示例 11
1-12 Oracle和Access中表的示例 11
1-13 1_employees表的一些设计决策 13
1-14 Lunches数据库 14
小结 18
第2章 从表中获取信息 19
select语句 19
2-1 目标:从表中获取几个列和行 19
2-2 select语句概述 19
select子句 21
2-3 select子句概述 21
2-4 使用select子句获取若干列 22
2-5 使用select子句获取所有的列 24
2-6 使用select语句获取某个列中的不同值 26
2-7 使用select子句获得几个列中的不同值 29
where子句 30
2-8 where子句概览 30
2-9 在where子句中使用等于条件 31
2-10 在where子句中使用小于条件 34
2-11 在where子句中使用不等于条件 35
2-12 在where子句中使用in条件 37
2-13 在where子句中使用between条件 38
2-14 在where子句中使用like条件 40
2-15 在where子句中使用is null条件 42
order by子句 44
2-16 order by子句概述 44
2-17 通过一列升序排列行 45
2-18 通过若干列升序排列行 46
2-19 根据若干列以各种顺序排序各行 47
2-20 整个过程 48
小结 49
第3章 where子句中的复合条件 51
where子句中的复合条件 51
3-1 在where子句中使用复合条件 51
3-2 将not与in、between、like和is null条件一起使用 53
3-3 where子句中复杂条件的标准形式 55
3-4 一个常见错误 56
常数值 58
3-5 在select子句中使用常数值 58
3-6 使用常数表 60
标点符号问题 62
3-7 现在需要知道的标点符号 62
3-8 标点符号参考 65
区分大小写 70
3-9 Oracle中的区分大小写 70
3-10 关于SQL中区分大小写的争论 73
3-11 有一个选择 73
3-12 在Oracle SQL Command Line环境中关闭区分大小写 73
3-13 Access中区分大小写 74
三值逻辑 75
3-14 使用三值逻辑的SQL 75
错误消息 77
3-15 错误消息常常是错的 77
练习 78
3-16 练习1 78
3-17 练习2 80
3-18 练习3 81
小结 83
第4章 保存结果 84
在新表或者视图中保存结果 84
4-1 从select语句的结果中创建一个新表 84
4-2 从select语句的结果创建一个新的视图 87
4-3 表和视图的相似之处 89
4-4 表和视图的不同之处 89
4-5 删除表 90
4-6 删除视图 90
4-7 一个视图可以建立在另一个视图之上 91
4-8 预防性删除 93
修改表中的数据 95
4-9 添加新行到表中 95
4-10 添加若干新行到一个表中 97
4-11 更改已经存在于表的行中的数据 99
4-12 从表中删除行 100
使用GUI修改表中的数据 101
4-13 使用Oracle GUI来修改表中的数据 102
4-14 使用Access GUI来修改表中的数据 104
修改表中数据的限制 106
4-15 使用insert、update和delete的约束条件 106
4-16 安全限制 107
小结 107
第5章 数据字典和其他Oracle主题 109
提交、回滚和事务 109
5-1 commit和rollback命令 109
5-2 Autocommit选项 109
5-3 事务 110
通过视图修改数据 113
5-4 通过视图更改数据 113
5-5 通过视图更改数据的例子 114
5-6 使用With Check Option的视图 120
Oracle中的SQL Commands页面 122
5-7 SQL Commands页面概览 122
5-8 Autocommit选项 124
5-9 Explain选项 124
使用Oracle数据字典:第一部分 124
5-10 数据字典概述 125
5-11 如何查找所有表的名字 126
5-12 如何查找所有视图的名字 127
5-13 如何查找定义视图的select语句 128
5-14 如何查找表或者视图中的列名 128
5-15 如何查找表的主键 130
小结 132
第6章 创建自己的表 133
创建表 133
6-1 create table命令 133
6-2 Oracle和Access中的数据类型 134
6-3 文本数据类型 137
6-4 数字数据类型 140
6-5 日期/时间数据类型 140
6-6 其他数据类型 141
6-7 将数据放入新表中 141
6-8 在Oracle中创建l_employees表 142
更改表 144
6-9 为表添加主键 144
6-10 更改表的主键 145
6-11 向表中添加一个新列 146
6-12 扩展列的长度 147
6-13 从表中删除一个列 148
6-14 对表进行其他更改 148
带有重复行的表 150
6-15 重复行的问题 150
6-16 如何删除重复行 152
6-17 如何区别重复行 153
小结 155
第7章 格式、序列和索引 156
格式 156
7-1 日期格式 156
7-2 显示已经格式化的日期 158
7-3 输入已格式化的日期 159
7-4 Oracle中的其他格式 161
7-5 Access中的格式 161
序列 163
7-6 在Oracle中创建序列 163
7-7 在Oracle中使用序列 164
7-8 在Access中使用序列 165
索引 167
7-9 创建索引 167
7-10 优化器 168
7-11 索引如何工作的示例 168
在数据字典中查找更多的信息:第二部分 169
7-12 如何查找有关列的数据类型的信息 169
7-13 如何查找有关序列的信息 171
7-14 如何找到有关索引的信息 172
7-15 如何找到所有数据库对象的相关信息 174
7-16 如何使用Oracle中的数据字典表 175
7-17 如何使用数据字典列的索引 176
练习 176
7-18 创建一个想要庆祝的节日的表 176
小结 178
第8章 数据完整性 179
表上的约束条件 179
8-1 约束条件使数据保持一致 179
8-2 check约束条件 179
8-3 unique约束条件 180
8-4 not null约束条件 181
8-5 primary key约束条件 182
8-6 对字段数据类型和长度的限制 183
参照完整性 183
8-7 参照完整性的概念 183
8-8 参照完整性的示例 184
8-9 对RI保护的数据表使用insert和update 185
8-10 通过RI允许对数据表使用insert和update 186
8-11 RI防止对查找表使用update和delete 187
8-12 如何从查找表中删除编码 187
8-13 如何在查找表中更改编码 189
8-14 RI作为表之间的关系 190
8-15 在Access GUI中建立RI 190
RI的delete选项和update选项 192
8-16 删除和更新查找表的三个选项 192
8-17 删除规则:set null 193
8-18 删除规则:cascade 194
8-19 更新规则:cascade 196
验证参照完整性 197
8-20 主键的两种含义 197
8-21 使用两个或者更多的列作为主键 199
8-22 查找表和数据表可以是同一个表 200
如何在create table语句中编写约束条件 201
8-23 约束条件常常在create table语句中编写 201
小结 203
第9章 行函数 204
行函数简介 204
9-1 直接从初始表中获得数据 204
9-2 什么是行函数 204
9-3 select子句中行函数的例子 207
9-4 select语句的所有子句中使用行函数的例子 208
9-5 定义行函数作为第一步 209
数字函数 211
9-6 数字函数 211
9-7 如何测试行函数 212
9-8 测试数字行函数的另一种方法 213
文本函数 215
9-9 文本函数 215
9-10 组合名和姓 218
9-11 分隔名和姓 220
9-12 设计电话号码的格式 221
日期函数 223
9-13 日期函数 223
9-14 日期函数的一个例子 226
9-15 从日期中删除时间 227
小结 229
第10章 使用行函数 230
特殊行函数 230
10-1 其他行函数 230
10-2 使用函数识别用户和日期 231
10-3 使用函数把null改为其他值 232
10-4 使用函数更改数据类型 234
使用行函数的文档 236
10-5 使用Oracle文档 236
10-6 使用Access文档 237
10-7 使用Access Expression Builder查看行函数 237
创建数字和日期模式 239
10-8 创建一个简单的数字模式 239
10-9 创建一个复杂的数字模式 241
10-10 列出一个星期的所有星期数 242
10-11 创建一个工作日日历 244
10-12 如何计算从出生到现在的天数 247
10-13 如何查找出生后满10000天的日期 248
10-14 给Oracle和Access中的报表编行号 249
10-15 可选内容:解代数方程的一种简单方法 250
小结 253
第11章 汇总数据 254
列函数简介 254
11-1 汇总一个列中的所有数据 254
11-2 列函数列表 254
最大值和最小值 256
11-3 找出最大值和最小值 256
11-4 列函数和where子句一起使用 258
11-5 找出拥有最大值和最小值的行 259
计数 261
11-6 对行和数据计数 261
11-7 零计数:第一部分 262
11-8 对列中相异值计数 263
11-9 计算两个或多个列中相异值的数目 265
求和与平均 267
11-10 求和函数与平均函数 267
11-11 加法存在的问题以及如何解决 268
其他主题 272
11-12 并不总将null更改为零 272
11-13 计算列中null的数目 273
11-14 对相异值计数 274
小结 276
第12章 控制汇总级别 277
将表划分为行的组并汇总每个组 277
12-1 列中数据组的汇总 277
12-2 group by子句 278
12-3 由两个或更多列形成的组 280
12-4 有多个分组列时的null组 282
12-5 在同一条select语句中,已汇总的数据不能与没有汇总的数据混在一起 284
12-6 解决方案1:将更多的列添加到group by子句中 286
12-7 解决方案2:将查询划分为两条单独的select语句 287
12-8 如何创建有多个小计和一个总计的报表 289
12-9 零计数:第二部分 289
12-10 零计数:第三部分 290
删除某些已汇总的数据 292
12-11 having子句 292
12-12 比较having子句与where子句 293
12-13 在一个表上使用select语句的全过程 294
12-14 having子句没有增加select语句的功能 294
12-15 使用where子句来删除原始数据 296
12-16 如何对一个列函数应用另一个列函数并且绕开其他限制 297
小结 299
第13章 内连接 300
连接简介 300
13-1 一个查询可以使用几个表中的数据 300
13-2 最佳方法是一次连接两个表 301
两个表的内连接 301
13-3 一对一关系 302
13-4 多对一关系 305
13-5 一对多关系 306
13-6 多对多关系 307
13-7 删除不匹配的行 308
13-8 删除匹配列中带有null的行 309
13-9 编写SQL语句进行内连接的5种方式 310
连接条件的变体 312
13-10 用两个或多个匹配列连接 312
13-11 用between匹配一系列值的连接 313
13-12 使用大于条件的连接 314
13-13 用行函数进行连接 316
13-14 在from子句中编写连接条件 316
连接应用 318
13-15 查找表 318
13-16 组合连接和数据的选取 320
13-17 联合使用连接 322
13-18 如何从数据字典中找出主键列 323
13-19 用内连接组合三个或更多的表 324
小结 325
第14章 外连接 326
外连接简介 326
14-1 外连接派生于内连接 326
14-2 外连接的3种类型 327
14-3 左外连接 328
14-4 右外连接 330
14-5 全外连接 331
14-6 union简介 333
14-7 带有匹配列的两个表的union的例子 334
外连接的应用 336
14-8 零计数:第四部分 336
14-9 组合外连接与数据选取 337
14-10 按排序顺序的全外连接 339
14-11 找出模式中的缺陷 341
14-12 用两列或多列进行比较 342
14-13 比较两个不同的全外连接 344
14-14 问题:左外连接和右外连接可能很难处理 346
小结 348
第15章 union和union all 350
union的基础知识 350
15-1 union与连接之间的区别 350
15-2 union和union all的区别 352
15-3 union中的select语句 353
15-4 union中的order by子句 354
15-5 创建一个包含union的表或者视图 357
15-6 union中的自动数据类型转换 358
非常规的union 361
15-7 不同数据类型表的union 361
15-8 不同列数的两个表的union 362
union的应用 364
15-9 确定两个表是否相同 364
15-10 在union中使用直接量确定数据的来源 365
15-11 给异常、警告和错误的标志附加消息 367
15-12 将数据从一个列中分到两个不同的列中 368
15-13 将两个函数应用到数据的不同部分 369
15-14 三个表或更多表的union 370
Oracle中的交集和差集 371
15-15 交集 371
15-16 差集 372
小结 374
第16章 交叉连接和自连接 375
交叉连接 375
16-1 交叉连接的定义 375
16-2 交叉连接重要的原因 376
16-3 内连接源自交叉连接 376
16-4 内连接的属性 379
16-5 连接条件中的错误可以显示为一个交叉连接 379
16-6 使用交叉连接列出所有可能的组合 381
16-7 三维或多维时的其他布局 382
16-8 避免对大型表使用交叉连接 383
自连接 384
16-9 表为什么与自己连接 384
16-10 自连接的例子 385
16-11 处理事件序列 387
16-12 生成从0到999的数字 389
Access中的CrossTab查询 391
16-13 当有两维时的交叉表查询 391
16-14 增加到四维的CrossTab查询 395
16-15 更多维的CrossTab查询 396
16-16 显示谁参加每次午餐的CrossTab 399
16-17 显示每次午餐的食物 402
Oracle中的CrossTab查询 405
16-18 Oracle中的CrossTab查询——第一部分 405
16-19 Oracle中的CrossTab查询——第二部分 406
小结 408
第17章 在产品数据库中组合表 409
连接三个或者更多表的方法 409
17-1 使用一系列步骤连接几个表 409
17-2 在where子句中一次连接几个表 411
17-3 在from子句中一次连接几个表 412
丢失信息 413
17-4 小心使用内连接 413
17-5 小心使用左外连接和右外连接 413
17-6 全外连接保留了所有的信息 413
17-7 几个表的全外连接 413
注意计算机的效率 415
17-8 监视查询 415
17-9 使用索引 415
17-10 尽早在过程中选择想要的数据 416
17-11 使用表保存总结数据 416
17-12 使用几种方法编写SQL 416
标准化连接表的方式 416
17-13 连接是数据库设计的一部分 416
17-14 视图可以标准化表的连接方式 417
17-15 临时报表 420
小结 420
第18章 if-then-else、参数查询和子查询 421
if-then-else逻辑 421
18-1 Oracle中的case函数和decode函数 421
18-2 Access中的Immediate If(iif)函数 424
18-3 给行附加消息 426
18-4 将一个列的数据划分为两个不同的列 427
18-5 对数据的不同部分应用两个函数 429
参数查询 430
18-6 Oracle中的参数查询 431
18-7 Oracle中多次使用参数 433
18-8 在Oracle中定义参数的更多方法 434
18-9 Access中的参数查询 436
18-10 Access中带有两个参数的查询 437
18-11 Access中的参数限制 437
子查询 438
18-12 子查询简介 438
18-13 产生一系列值的子查询 436
18-14 产生一个值的子查询 441
18-15 存在null值时避免使用not in 442
子查询的应用 443
18-16 用于update命令中的子查询 444
18-17 找出两个表之间的不同之处 445
18-18 使用最新数据 446
子查询的原有特性 446
18-19 相关子查询 447
18-20 使用exists的子查询 448
18-21 使用子查询编写外连接 448
18-22 嵌套子查询 449
18-23 子查询的使用限制 449
18-24 许多子查询也可以写作连接 449
小结 450
第19章 多用户环境 451
数据库配置 451
19-1 单用户环境 451
19-2 多用户环境 452
19-3 分布式环境 452
19-4 通过Internet连接 454
多用户环境中的操作 454
19-5 如何使用别人拥有的表 454
19-6 代名 455
19-7 快照 456
安全性和特权 457
19-8 识别用户 457
19-9 特权 457
19-10 角色 458
19-11 几个人同时使用相同的表 459
Oracle数据字典和多用户环境 460
19-12 ALL和USER 460
19-13 如何在数据字典中找到所需的表 460
19-14 如何找到列的含义 460
小结 461
第20章 SQL设计 462
SQL的最初设计目标 462
20-1 做一件事并且做好它 462
20-2 关注信息 462
20-3 保持SQL语言的简单性 463
20-4 协调人们一起工作 463
新的界面 464
20-5 窗体 464
20-6 报表 464
20-7 Web工具 464
20-8 更小的数据库 466
20-9 OLTP 466
20-10 数据仓库 467
小结 467
附录A 获取和安装Oracle 468
附录B Oracle快速入门 477
附录C Access快速入门 481
附录D Lunches数据库的图 489
- 《市政工程基础》杨岚编著 2009
- 《零基础学会素描》王金著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《生物质甘油共气化制氢基础研究》赵丽霞 2019
- 《花时间 我的第一堂花艺课 插花基础技法篇》(日)花时间编辑部编;陈洁责编;冯莹莹译 2020
- 《Photoshop CC 2018基础教程》温培利,付华编著 2019
- 《看视频零基础学英语口语》宋德伟 2019
- 《胃癌基础病理》(日)塚本彻哉编者;宫健,刘石译者 2019
- 《高校转型发展系列教材 素描基础与设计》施猛责任编辑;(中国)魏伏一,徐红 2019
- 《基础乐理》牛丽君 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017
- 《新工业时代 世界级工业家张毓强和他的“新石头记”》秦朔 2019
- 《智能制造高技能人才培养规划丛书 ABB工业机器人虚拟仿真教程》(中国)工控帮教研组 2019
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019