关系数据库和SQL编程

关系数据库和SQL编程"

作者:任鸿
ISBN:9787302118428
定价:¥39.80
字数:千字
页数:
出版时间:2005.12.01
开本:
版次:1-1
装帧:
出版社:清华大学出版社
简介

通过关系数据库,您可以将大量杂乱无章的信息转换为有序、彼此关联的数据。本书详细介绍了关系数据库的基本概念,并教会您如何存储、访问并处理数据,以及如何使用SQL和PL/SQL。本书以Oracle 9i为示例工具,提供了大量动手练习和指导,并通过贯穿全书始末的安全(Clapham Specialty商店)来帮助读者实际应用所学的内容。

本书是一本外版书,由 (美)  Christopher Allen

                           Simon Chatwin               著

                           Catherine A. Creary

                        皮人杰  任鸿       译

                        邸奇光  战晓苏         审校

前言

前    言

大部分程序员只有在编写应用软件时才考虑到数据库的设计,这并不是他们的错,因为程序设计课程就是如此。但是数据存储的设计需要长远的眼光。一个设计良好的数据库应该能经得住时间的考验,在多年后仍可供其他应用软件使用,因为这样的数据库反映了如何处理一个“业务”,而不只是局限于开发时的某个特定程序。

要实现能良好反映现实世界的数据库的设计,需要常识、丰富的编程经验以及对设计方案的理解——最重要的是,要从与众不同的角度考虑业务的信息。

本书展示了如何设计和构建灵活的、可发展的并且能够满足当前需要的数据库。书中给出的大量实例不仅说明了如何使用某些特定技巧,也说明了使用这些技巧的原因。书中的习题反映了您在设计、构建数据库和SQL查询语句时会遇到的各种问题。

本书内容

本书采用循序渐进的方式向读者介绍关系数据库的详细信息,各章节的内容以及练习都前后衔接,构成有机的总体,便于读者逐步掌握并巩固所学内容。

第1章  关系数据库简介

该章简要描述了关系数据库的基本概念和基础知识,讨论了数据库和电子数据表的区别,并说明数据库和结构化查询语言(SQL)的实际优点,此外还回顾了SQL的发展史。

第2章  存储和检索数据:基本操作

该章介绍了数据库中一些常规操作,首先介绍使用数据库的准备工作,然后指引读者创建表、向表中插入数据,并查看表中的数据。

第3章  执行高级数据操作

该章介绍了数据库中的一些较复杂的操作,如限定选取记录的范围、按不同的顺序查看记录、从DUAL表中选取数据、修改并删除表中的数据、维护事务控制等。

第4章  控制SQL*Plus

该章介绍了如何使用SQL*Plus,包括在SQL*Plus中编辑以前的命令、复制和粘贴命令、清空SQL*Plus屏幕、定制SQL*Plus环境、保存环境设置、提高输出的可读性等内容。

第5章  Oracle SQL内部函数

该章介绍了Oracle SQL内部函数的使用,重点介绍了单行函数和分组函数。

第6章  索引、连接和子查询

该章介绍了索引、连接和子查询,主要内容包括索引的作用、何时使用索引、表之间的关系、SQL子查询等。

第7章  编写PL/SQL程序

该章介绍了如何编写PL/SQL程序,首先论述了PL/SQL语言的用途和应用领域,随后创建了一个基本的PL/SQL过程:Hello World,此外还介绍了PL/SQL变量和常量、控制结构、PL/SQL异常捕捉与响应等内容。

第8章  解读数据模型

该章介绍了数据模型的基本概念,讨论了数据模型设计的目的及其益处,确定数据模型的类型及其使用方法、解读数据模型、识别和解释数据建模符号等内容。

第9章  数据库结构设计基础

该章介绍了怎样建立一个实际的数据库结构,并讨论几种实体间的关系,以及怎样保证输入数据的准确性和连续性。

第10章  数据库的规范化

该章介绍了数据语义(即含义)方面的内容、数据语义对数据模型所产生的影响,以及如何将逻辑模型转换为物理模型。

第11章  分析数据质量问题

该章介绍了更多关于物理模型方面的知识,以及用于确保数据质量的方法和技巧。另外,读者还将学习到如何利用索引改进数据的质量。

第12章  其他Oracle相关技术

该章介绍了一些有关Oracle的技术和技巧。包括表间的数据传送、表的重命名、修改表结构、如何创建及使用视图、序列和同义词。

术语表

该表总结了本书用到的大部分术语,便于读者检索和学习。

我们尽量使用生动形象的语言激发读者在学习中的兴趣。如果您对本书有改进的建议,请发送邮件到fwkbook@tup.tsinghua.edu.cn,不管您对本书持肯定还是否定态度,我们都会感谢您的建议。

祝您在设计和编程工作中一切顺利!

目录

目    录

第1章  关系数据库简介 1

1.1  数据库的确切定义 1

1.1.1  表 1

1.1.2  行/记录 2

1.1.3  列/字段 2

1.2  数据库和电子数据表的区别 3

1.2.1  多行 3

1.2.2  多用户同时访问 3

1.2.3  安全性 4

1.2.4  关联功能 4

1.2.5  确保数据质量的约束 5

1.2.6  案例分析-- Clapham专营店 5

1.3  了解这些内容对您的帮助 6

1.3.1  开发软件 6

1.3.2  作为数据库管理员 7

1.3.3  进行商业分析 7

1.3.4  更好地使用数据库 7

1.4  SQL的历史 7

1.5  小结 8

1.6  练习 9

1.7  实践项目 12

第2章  存储和检索数据:基本操作 14

2.1  使用数据库的准备工作 14

2.1.1  创建表 15

2.1.2  插入记录 15

2.1.3  选择记录 16

2.1.4  删除表 16

2.2  创建表 18

2.2.1  表和列的命名原则 18

2.2.2  创建更复杂的表 23

2.2.3  确定表的结构 29

2.2.4  NULL和NOT NULL列 29

2.3  插入数据-- 补充方法 31

2.3.1  插入包含NULL值的记录 31

2.3.2  插入包含撇号的数据 35

2.4  查看表中的数据-- 补充方法 36

2.4.1  选择特定的列 36

2.4.2  修改列的顺序 36

2.4.3  使用表中的数据进行数学

计算 37

2.4.4  连接两段或更多文本 39

2.4.5  将别名赋给对应的列 40

2.5  小结 42

2.6  练习 44

2.7  实践项目 48

第3章  执行高级数据操作 50

3.1  SQL命令分类 50

3.1.1  数据定义 51

3.1.2  数据操作 51

3.1.3  数据控制 51

3.1.4  数据检索 51

3.1.5  事务控制 51

3.2  限制选取的记录 52

3.2.1  根据数字过滤记录 52

3.2.2  根据文本过滤记录 56

3.2.3  根据日期过滤记录 58

3.3  按不同的顺序查看记录 60

3.3.1  单列排序 60

3.3.2  多列排序 60

3.4  显示惟一值 62

3.5  从DUAL表中选取数据 64

3.6  修改表中的数据 65

3.7  从表中删除记录 66

3.7.1  删除符合特定条件的行 66

3.7.2  删除所有行 67

3.8  事务控制 67

3.8.1  撤消DML事务 67

3.8.2  使数据对其他用户可见 71

3.8.3  隐式提交和显式提交 71

3.9  小结 73

3.10  练习 74

3.11  实践项目 78

第4章  控制SQL*Plus 79

4.1  编辑以前的命令 79

4.1.1  使用文本编辑器 79

4.1.2  单行编辑 81

4.2  复制和粘贴 83

4.3  清空SQL*Plus的屏幕 85

4.4  定制SQL*Plus的环境 85

4.4.1  使用SQL*Plus的菜单进

行定制 85

4.4.2  使用命令进行定制 87

4.5  保存环境设置 87

4.6  提高输出的可读性 88

4.6.1  在SQL*Plus中格式化数字 88

4.6.2  在SQL*Plus中格式化文本 90

4.6.3  在SQL*Plus中格式化列标题 91

4.7  假脱机输出到磁盘 92

4.8  SQL脚本文件 93

4.8.1  创建脚本文件 93

4.8.2  运行脚本文件 94

4.8.3  在脚本文件中使用变量 95

4.9  小结 97

4.10  练习 98

4.11  实践项目 101

第5章  Oracle SQL内部函数 103

5.1  实现常用单行函数 103

5.1.1  系统变量 104

5.1.2  数值函数 107

5.1.3  文本函数 109

5.1.4  日期 120

5.1.5  数据转换 124

5.1.6  其他函数 132

5.2  常用分组函数 137

5.2.1  常用分组函数 137

5.2.2  使用GROUP BY子句对数

据分组 139

5.2.3  使用HAVING子句包含和去

除分组数据 140

5.3  小结 142

5.4  练习 143

5.5  实践项目 147

第6章  索引、连接和子查询 149

6.1  创建测试表 149

6.2  索引 152

6.2.1  数据库索引 152

6.2.2  创建索引的方法 153

6.3  索引的类型 154

6.3.1  B树索引 154

6.3.2  位图索引 156

6.3.3  位图索引与B树索引 157

6.3.4  基于函数的索引 157

6.4  何时使用索引 158

6.5  表之间的关系 160

6.5.1  使用SELECT语句进行多表

联合查询 161

6.5.2  连接的类型 163

6.5.3  集合运算符 168

6.6  子查询 171

6.6.1  子查询的定义 171

6.6.2  子查询所能解决的问题 172

6.6.3  单行子查询 172

6.6.4  多行子查询 173

6.6.5  多列子查询 174

6.6.6  关联子查询 174

6.7  小结 175

6.8  练习 176

6.9  实践项目 180

第7章  编写PL/SQL程序 182

7.1  PL/SQL的定义 182

7.1.1  PL/SQL简介 186

7.1.2  PL/SQL、SQL和SQL*Plus

的关系 186

7.1.3  存储过程、函-数和触发器 187

7.1.4  存储过程和SQL脚本 189

7.2  PL/SQL的块结构 189

7.2.1  块头部分 190

7.2.2  声明部分 190

7.2.3  执行部分 191

7.2.4  异常部分 191

7.3  创建一个简单的PL/SQL过程 192

7.4  PL/SQL变量和常量 194

7.4.1  PL/SQL变量的声明 194

7.4.2  声明PL/SQL常量 195

7.4.3  变量赋值 195

7.4.4  使用变量 196

7.5  PL/SQL的控制结构 197

7.5.1  IF语句 197

7.5.2  循环 199

7.5.3  游标 201

7.5.4  嵌套循环和游标应用示例 204

7.6  错误处理 207

7.6.1  异常 207

7.6.2  系统定义异常 207

7.6.3  程序员定义的异常 209

7.7  小结 210

7.8  练习 212

7.9  实践项目 216

第8章  解读数据模型 217

8.1  数据模型设计综述 217

8.1.1  数据模型设计的目的及其益处 218

8.1.2  关系完整性:质量数据 218

8.2  数据模型的种类 219

8.2.1  概念模型 219

8.2.2  逻辑数据模型 220

8.2.3  物理数据模型 220

8.3  实体-关系图 222

8.3.1  实体 222

8.3.2  属性 223

8.3.3  关系 224

8.3.4  基数与可选符号 226

8.4  小结 227

8.5  复习题 229

8.6  实践项目 232

第9章  数据库结构设计基础 234

9.1  业务规约:让数据告诉您

     该往哪走 234

9.2  数据库粒度选择 235

9.3  实体和属性 235

9.4  可靠地确定记录:主键 238

9.4.1  为什么需要主键 238

9.4.2  复合主键 238

9.4.3  自然主键与代理主键 239

9.4.4  关系:引用其他表的数据 241

9.5  常用数据模型标准 242

9.5.1  鱼尾纹(IE) 242

9.5.2  IDEF1X 243

9.6  关系:基数和可选性 245

9.6.1  一对多 245

9.6.2  多对多 246

9.6.3  一对一 247

9.6.4  可选性 248

9.6.5  依存关系:确定关系 248

9.6.6  递归关系与二元关系 249

9.7  多范畴建模:超类型和子类型 250

9.7.1  范畴、超类型和子类型 251

9.7.2  超/子类型的物理模型实现 252

9.8  小结 253

9.9  复习题 254

9.10  实践项目 257

第10章  数据库的规范化 258

10.1  规范化过程 258

10.2  依存关系 259

10.2.1  依存因子与决定因子 259

10.2.2  传递依存关系 259

10.3  第一范式、二范式、三范式 260

10.3.1  第一范式:消除重复组 261

10.3.2  第二范式:消除冗余数据 263

10.3.3  第三范式:消除非主键依

存关系 264

10.4  在数据库模型设计中应用

范式 265

10.5  第四范式、第五范式 266

10.5.1  第四范式:分离独立的多

重关系 266

10.5.2  第五范式:分离语义关联的

多重关系 267

10.6  合理地使用范式 269

10.7  数据异常 270

10.7.1  插入异常 270

10.7.2  删除异常 270

10.7.3  更新异常 270

10.7.4  遵守范式约束的代价 271

10.8  将逻辑模型转化为物理模型 271

10.8.1  数据库引擎的选择 271

10.8.2  术语转换 271

10.8.3  超/子类型的转换 272

10.9  小结 273

10.10  练习 274

10.11  实践项目 277

第11章  分析数据质量问题 279

11.1  数据类型与丢失数据:质量

的基础 279

11.1.1  处理遗漏值 279

11.1.2  苹果和橘子:定义数

据类型 280

11.1.3  选择数据类型 282

11.1.4  数据类型转换:弱类型和

强类型 284

11.2  数据域:合法性检查 285

11.3  列和表约束 286

11.3.1  列约束 286

11.3.2  表约束 289

11.4  主键约束与索引 290

11.4.1  惟一性及其实现 290

11.4.2  候选键 292

11.4.3  其他索引 293

11.5  外键约束:引用其他表的

数据 294

11.5.1  添加约束 294

11.5.2  基数和可选性的实现 296

11.5.3  级联效应 298

11.5.4 递归关系上的级联删除 300

11.5.4  级联的局限性 301

11.6  声明式关系完整性:优点和

局限 306

11.6.1  声明式外键约束 306

11.6.2  触发器和过程代码 306

11.7  命名约束:令程序员更易

理解 308

11.7.1  命名表和列 308

11.7.2  命名检查约束 309

11.7.3  命名外键约束 309

11.7.4  命名索引 309

11.8  小结 310

11.9  练习 311

11.10  实践项目 314

第12章  其他Oracle相关技术 316

12.1  表间数据传送 316

12.1.1  使用INSERT传送数据 319

12.1.2  在现有表的基础上创建

新表 320

12.2  重命名表 321

12.3  修改表结构 322

12.3.1  添加列 322

12.3.2  修改列的数据类型 323

12.3.3  修改NULL选项 324

12.4  视图 325

12.4.1  创建视图 325

12.4.2  可更新视图 326

12.4.3  删除视图 327

12.4.4  回显记录个数的控制 328

12.5  其他数据库对象 334

12.5.1  序列 334

12.5.2  同义词 338

12.6  小结 340

12.7  练习 341

12.8  实践项目 344

术语表 345

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个