《SQL基础》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:(美)John J.Patrick著;高京义,汤严等译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2003
  • ISBN:7302068933
  • 页数:610 页
图书介绍:本书介绍了SQL语言和关系数据库的基本知识与使用。

第1章 在表中存储信息 1

介绍 1

1-1 什么是 SQL? 1

1-2 什么是关系数据库?为什么要使用它? 2

1-3 为什么学习 SQL? 4

1-4 本书的内容 5

表的组成部分 6

1-5 数据存储在表中 6

1-6 一个行表示一个对象及其相关信息 7

1-7 一个列表示一类信息 8

1-8 单元是表的最小部分 9

1-9 每个单元应该只表示一样东西 10

1-10 使用主键列识别每一个行 11

1-11 大部分表都很瘦长 12

表的例子 12

1-12 Oracle 和 Access 中表的例子 13

1-13 l_employees 表的一些设计决策 15

1-14 Lunches 数据库 16

小结 21

第2章 从表中获取信息 22

select 语句 22

2-1 目标:从表中获取几个列和行 22

2-2 select 语句概述 23

select 子句 25

2-3 select 子句概述 25

2-4 使用 select 子句获取若干列 26

2-5 使用 select 子句获取所有的列 29

2-6 使用 select 语句获取某个列中的相异值 31

2-7 使用 select 子句获得几个列中的相异值 34

where 子句 35

2-8 where 子句概述 36

2-9 在 where 子句中使用等于条件 37

2-10 在 where 子句中使用小于条件 39

2-11 在 where 子句中使用不等于条件 40

2-12 在 where 子句中使用 in 条件 42

2-13 在 where 子句中使用 between 条件 44

2-14 在 where 子句中使用 like 条件 47

2-15 在 where 子句中使用 is null 条件 49

order by 子句 51

2-16 order by 子句概述 51

2-17 通过若干列升序排列行 52

2-18 通过若干列按照不同顺序排列行 53

2-19 整个过程 55

小结 55

练习 56

where 子句中的复合条件 63

3-1 在 where 子句中使用复合条件 63

第3章 where 子句中的复合条件 63

3-2 将 not 与 in、between、like 和 is null 条件一起使用 65

3-3 where 子句中复杂条件的标准形式 67

3-4 如何将复杂条件放入标准形式 69

3-5 规则1和规则3的例子 70

3-6 规则2的例子 72

3-7 规则4的例子 73

3-8 一个常见错误 75

常数值 77

3-9 select 子句中使用常数值 78

3-10 使用常数表 80

标点符号 82

3-11 现在需要知道的标点符号 83

3-12 标点符号参考 84

3-13 区分大小写 90

3-14 练习1 91

例题 91

3-15 练习2 94

3-16 练习3 95

小结 97

练习 97

第4章 保存结果 101

在新表或者视图中保存结果 101

4-1 从 select 语句的结果中创建一个新表 101

4-2 从 select 语句的结果中创建一个新的视图 104

4-3 表和视图的相似之处 106

4-4 表和视图的不同之处 106

4-5 删除表 107

4-6 删除视图 108

4-7 一个视图可以建立在另一个视图之上 108

4-8 预防性删除 111

4-9 添加新行到表中 113

修改表中的数据 113

4-10 commit 和 rollback 115

4-11 添加若干新行到包含 select 语句的表中 116

4-12 更改已经存在于表的行中的数据 118

4-13 从表中删除行 120

4-14 包含 insert、update 和 delete 的约束条件 121

4-15 autocommit 122

4-16 使用 Access GUI 环境更改表中数据 123

小结 125

练习 125

第5章 通过视图修改数据 129

事务 129

5-1 事务的例子 129

通过视图修改数据 131

5-2 通过视图更改数据 132

5-3 通过视图更改数据的例子 133

5-4 使用 With Check Option 的视图 138

Oracle SQLplus 139

5-5 如何使用 SQLplus 设置列格式和标题 140

5-6 如何使用 SQLplus 查找表或者视图中的列名 144

5-7 如何使用假脱机文件 145

5-8 如何获得 SQLplus 的在线帮助 145

5-9 如何显示 SQLplus 的参数设置 146

5-10 关于 SQLFUN_LOGIN 脚本 147

5-11 如何使用 Oracle SQLplus 文档 148

查找关于表和视图的信息 150

5-12 数据字典概述 150

5-13 如何查找所有表的名字 152

5-14 如何查找所有视图的名字 154

5-15 如何查找定义视图的 select 语句 155

5-16 如何查找表或者视图中的列名 156

5-17 如何查找表的主键 158

小结 160

练习 160

第6章 创建自己的表 163

创建表 163

6-1 create table 命令 163

6-2 Oracle 和 Access 中的数据类型 164

6-3 时间的两种类型 168

6-4 将数据放入新的 l_foods 表中 168

6-5 在 Oracle 中创建 l_employees 表 169

更改表 171

6-6 向表添加主键 172

6-7 更改表的主键 173

6-8 向表添加一个新列 174

6-9 扩展列的长度 175

6-10 从表中删除一个列 176

6-11 对表进行其他更改 177

包含重复行的表 180

6-12 重复行的问题 180

6-13 如何删除重复行 182

6-14 如何区别重复行 183

从文件中加载大量数据 185

6-15 Oracle 中的 SQL * Loader 185

6-16 加载在 Oracle 中带分隔符的数据 190

6-17 Oracle 中的 analyze table 192

6-18 Access 中的 File Import 193

小结 196

练习 197

第7章 格式、序列和索引 201

格式 201

7-1 日期格式 201

7-2 显示已经格式化的日期 203

7-3 输入已格式化的日期 205

7-4 Oracle 中的其他格式 207

7-5 Access 中的格式 207

序列 209

7-6 在 Oracle 中创建序列 209

7-7 在 Oracle 中使用序列 210

7-8 Access 中的序列 212

索引 213

7-9 创建索引 214

7-10 优化器 215

7-11 索引如何工作的范例 215

在数据字典中查找更多的信息 216

7-12 如何查找有关列的数据类型的信息 216

7-13 如何查找有关序列的信息 219

7-14 如何查找有关索引的信息 220

7-15 如何在 Oracle 中查找有关所有数据库对象的信息 222

7-16 如何使用 Oracle 中的字典表 223

7-17 如何使用 Oracle 中的字典列的索引 224

练习 225

7-18 创建一个想要庆祝的节日的表 225

小结 227

练习 227

第8章 数据完整性 230

参照完整性 230

8-1 参照完整性的概念 230

8-2 参照完整性的例子 231

8-3 对 RI 保护的数据表使用 insert 和 update 233

8-4 通过 RI 允许对数据表使用 insert 和 update 233

8-5 对 RI 保护的查找表使用 update 和 delete 235

8-6 如何从查找表中删除编码 235

8-7 如何在查找表中更改编码 237

8-9 在 Access GUI 中建立 RI 238

8-8 表之间关系的 RI 238

RI 的 delete 选项和 update 选项 240

8-10 删除和更改查找表的三个选项 241

8-11 删除规则:setnull 241

8-12 删除规则:cascade 243

8-13 更新规则:cascade 246

参照完整性的变体 247

8-14 主键的两种含义 247

8-15 使用两个或者更多的列作为主键 249

8-16 查找表和数据表可以是同一个表 250

其他类型的约束条件 251

8-17 check 约束条件 251

8-18 unique 约束条件 252

8-19 not null 约束条件 253

8-20 primary key 约束条件 254

8-22 约束条件常通过 create table 语句实现 255

8-21 对字段数据类型和长度的限制 255

小结 257

练习 258

第9章 行函数 260

行函数介绍 260

9-1 直接从原表中获得数据 260

9-2 行函数的定义 261

9-3 select 子句中行函数的例子 263

9-4 select 语句的子句使用行函数的例子 264

9-5 在第一步中定义行函数 266

数字函数 268

9-6 数字函数 269

9-7 如何测试行函数 270

9-8 测试数字行函数的另一种方法 271

文本函数 273

9-9 文本函数 273

9-10 合并名和姓 275

9-11 分离名和姓 277

9-12 设计电话号码的格式 279

日期函数 280

9-13 日期函数 281

9-14 日期函数的一个例子 283

9-15 从日期中删除时间 284

小结 287

练习 287

第10章 使用行函数 291

其他函数 291

10-1 其他行函数 291

10-2 使用函数识别用户和日期 292

10-3 使用函数将 null 更改为其他值 293

10-4 使用函数更改数据类型 295

10-5 在 Access 中使用表达式生成器 298

使用行函数的文档 298

10-6 使用 Oracle 的文档 299

创建数字和日期模式 301

10-7 创建一个简单的数字模式 302

10-8 创建复杂的数字模式 303

10-9 解代数方程的一个简单方法 305

10-10 列出一个星期的所有星期数 308

10-11 创建一个工作日日历 311

10-12 如何计算从出生到现在的天数 315

10-13 如何查找出生后满10000天的日期 316

小结 317

练习 317

第11章 总结数据 319

列函数的介绍 319

11-1 总结一个列中的所有数据 319

11-2 列函数清单 320

最大值和最小值 321

11-3 找出最大值和最小值 321

11-4 使用包含列函数的 where 子句 323

11-5 找出有最大值和最小值的行 325

计数 327

11-6 对行和数据计数 327

11-7 零计数 329

11-8 对列中相异值计数 330

11-9 计算多个列中相异值的数目 332

求和及平均 334

11-10 求和函数和平均函数 334

11-11 加法存在的问题以及如何解决 335

其他主题 340

11-12 并不总将 null 更改为零 340

11-13 计算列中 null 的数目 341

11-14 对相异值计数 342

练习 345

小结 345

第12章 控制总结级别 346

将表划分为行的组并总结每个组 346

12-1 列中数据组的总结 346

12-2 group by 子句 347

12-3 由两个或更多列形成的组 349

12-4 有多个分组列时的 null 组 352

12-5 在同一个 select 语句中,已总结的数据不能与没有总结的数据混在一起 354

12-6 解决方案1:将更多的列添加到 group by 子句中 357

12-7 解决方案2:将查询分为两个单独的 select 语句 358

12-8 如何创建有多个小计和一个总计的报告 360

12-9 第2部分,零计数 360

12-10 第3部分,零计数 362

12-11 having 子句 364

消除某些已总结的数据 364

12-12 比较 having 子句与 where 子句 366

12-13 在一个表中使用 select 语句的全过程 366

12-14 having 子句没有增加 select 语句功能 366

12-15 使用 where 子句而不是 having 子句来删除原始数据 369

总结的约束条件 370

12-16 已分组总结的3个约束条件 370

12-17 如何应用约束条件1 371

12-18 如何应用约束条件2 373

12-19 如何应用约束条件3 375

小结 377

练习 378

第13章 内连接 382

连接简介 382

13-1 查询可以获取几个表中的数据 382

13-2 最佳方法是一次连接两个表 383

两个表的内连接 384

13-3 一对一关系 385

13-4 多对一关系 387

13-5 一对多关系 388

13-6 多对多关系 389

13-7 删除不匹配的行 390

13-8 删除匹配列中带有 null 的行 391

13-9 编写 SQL 语句进行内连接的5种方式 393

连接条件的变体 395

13-10 用两个或多个匹配列连接 395

13-11 用 between 匹配一系列值连接 396

13-12 使用大于条件连接 397

13-13 用行函数进行连接 399

13-14 在 from 子句中编写连接条件 400

13-15 查找表 402

连接应用 402

13-16 组合连接和数据的选取 404

13-17 联合使用连接 406

13-18 如何从数据词典中找出主键列 407

13-19 用内连接组合三个或更多的表 409

小结 410

练习 411

第14章 外连接 412

外连接简介 412

14-1 外连接派生于内连接 412

14-2 外连接的3种类型 413

14-3 左外连接 415

14-4 右外连接 417

14-5 全外连接 418

14-6 union 简介 420

14-7 带有匹配列的两个表的 union 的例子 422

14-8 零计数 424

外连接应用 424

14-9 组合外连接与数据选取 426

14-10 按排序顺序全外连接 429

14-11 找出模式中的缺陷 431

14-12 用两列或多列进行比较 434

14-13 比较两个不同的全外连接 436

小结 439

练习 439

第15章 Union 和 Union all 442

Union 442

15-1 Union 与连接之间的区别 442

15-2 Union all 444

15-3 Union 中的 select 语句 445

15-4 Union 中的 order by 子句 447

15-5 创建一个包含 Union 的表或者视图 449

15-6 Union 中的自动数据类型转换 451

非常规的 Union 454

15-7 不同数据类型表的 Union 454

15-8 有不同列数的两个表的 Union 455

Union 的应用 457

15-9 确定两个表是否相同 457

15-10 在 Union 中使用文字确定数据的来源 459

15-11 标记异常情况、警告和错误的附加消息 461

15-12 将数据从一个列中分到两个不同的列中 462

15-13 将两个函数应用到数据的不同部分 464

15-14 三个或更多表的 Union 465

在 Oracle 中设置交集和差集 467

15-15 设置交集 467

15-16 差集 468

小结 471

练习 471

16-1 交叉连接的定义 473

第16章 交叉连接和自连接 473

交叉连接 473

16-2 交叉连接重要的原因 475

16-3 内连接源自交叉连接 475

16-4 内连接的属性 477

16-5 连接条件中的错误可以显示为一个交叉连接 478

16-6 使用交叉连接列出所有可能组合 480

16-7 避免对大型表使用交叉连接 482

自连接 483

16-8 表为什么与自己连接 483

16-9 自连接的例子 485

16-10 生成从0~999的数字 488

16-11 对 Oracle 和 Access 报告的行编号 490

小结 492

练习 492

17-1 使用一系列步骤连接几个表 494

连接三个或者更多表的方法 494

第17章 在生产数据库中合并表 494

17-2 在 where 子句中连接几个表 497

17-3 在 from 子句中连接几个表 497

丢失的信息 499

17-4 小心使用内连接 499

17-5 小心使用左外连接和右外连接 499

17-6 完全外连接保留了所有的信息 500

17-7 几个表的完全外连接 500

注意计算机的效率 502

17-8 监视查询 503

17-9 使用索引 503

17-10 尽早在过程中选择想要的数据 503

17-11 使用表保存总结数据 503

17-14 视图可以标准化表的连接方式 504

17-13 连接是数据库设计的一部分 504

标准化连接表的方式 504

17-12 使用几种方法编写 SQL 504

17-15 临时报告 509

小结 509

第18章 IF-THEN-ELSE 和子查询 510

If-Then-Else 逻辑 510

18-1 Oracle 中的 decode 函数 510

18-2 Access 中的 Immediate If(iif)函数 513

18-3 附加消息给行 515

18-4 将一个列的数据分解为两个不同的列 517

18-5 对数据的不同部分应用两个函数 519

参数查询 520

18-6 Oracle 中的参数查询 521

18-7 Oracle 中多次使用参数 522

18-8 Oracle 中更多定义参数的方法 523

18-10 Access 中带有两个参数的查询 526

18-9 Access 中的参数查询 526

18-11 Access 中的参数限制 527

子查询 527

18-12 子查询简介 527

18-13 产生一系列值的子查询 529

18-14 产生一个值的子查询 531

18-15 存在 null 值时避免使用 not in 533

子查询的应用 535

18-16 用于 update 命令中的子查询 535

18-17 找出两个表之间的不同之处 537

18-18 使用最新数据 539

子查询的原有特性 539

18-19 相关子查询 539

18-20 使用 exists 的子查询 541

18-21 使用子查询编写外连接 541

小结 543

18-24 许多子查询也可以写作连接 543

18-22 嵌套子查询 543

18-23 子查询的使用限制 543

第19章 多用户环境 544

数据库配置 544

19-1 单用户环境 544

19-2 多用户环境 545

19-3 分布式环境 546

19-4 通过 Internet 连接 547

在多用户环境中运行 547

19-5 如何使用别人拥有的表 547

19-6 代名 549

19-7 快照 550

安全性和特权 552

19-8 识别用户 552

19-9 特权 552

19-10 角色 553

几个人同时使用相同的表 554

19-11 一个人更改数据而另一个人查看 555

19-12 两个人更改同一个表中的不同行 559

19-13 两个人改变表中同一行 562

锁定 564

19-14 行锁定 564

19-15 Rollback 段 565

19-16 表锁定 565

19-17 锁定类型 565

19-18 Select for update 命令 565

19-19 运行 select 语句时的稳定性 568

19-20 运行某个事务期间的稳定性 569

结论 572

19-22 如何在数据字典中找到所需的表 573

19-21 ALL 和 USER 573

数据字典和多用户环境 573

19-23 如何找到列的含义 574

如何创建一个共享的应用程序 574

19-24 将 Lunches 数据库创建为共享应用程序 574

小结 578

第20章 SQL 设计 579

SQL 的最初设计目标 579

20-1 做一件事并且做好它 579

20-2 重点是信息 579

20-3 保持 SQL 语言的简单性 580

20-4 协调人们一起工作 581

新的界面 581

20-5 窗体 581

20-8 更小的数据库 582

典型应用 582

20-6 报告 582

20-7 Web 工具 582

20-9 OLTP 586

20-10 数据仓库 586

小结 586

附录 A 获取和安装 Oracle 587

获取当前信息 587

用户应该获取哪种产品 587

下载向导 588

订购 Oracle 光盘 588

从 Internet 下载 Oracle 588

注册向导 588

安装 Oracle 589

检测系统需求 589

安装过程 589

验证 Oracle 是否正确运行 590

使用用户 id System 登录到 SQLplus 中 590

安装运行本书中的例子 590

在 C 盘创建一个 temp 目录 590

初始用户 id 和口令 590

验证表空间的名称 591

建立新的用户 id 591

登录新用户 id 592

安装本书中用到的表 592

检查表是否正确加载 593

灾难恢复 594

如何创建表并指定其他的表空间名称 594

附录 B 使用 Oracle 的技巧 595

启动 Oracle 595

输入查询 596

使用 SQLplus 行编辑器 599

使用剪切并粘贴的方法 599

出发点 599

另一种编辑 SQL 代码的方法 599

错误消息有时候是正确的 600

使用滚动条 600

如果 Oracle 不响应 601

安装 LOGIN 脚本 601

运行一个章所有的 SQL 601

附录 C 使用 Access 的技巧 603

可以使用 Access 2000或2002 603

启动 Access 603

输入 SQL 查询 604

处理错误 607

打印 608

附录 D Lunches 数据库图表 609

连接条件 609

数据验证规则 610