描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302515654
产品特色
编辑推荐
《Oracle 12c数据库入门与应用》的特色
书中采用大量的实例进行讲解,力求通过实际操作使读者更容易地掌握Oracle数据库应用。
难度适中,内容由浅入深,实用性强,覆盖面广,条理清晰。
知识点全
紧紧围绕Oracle数据库展开讲解,具有很强的逻辑性和系统性。
实例丰富
各章实例短小却又能体现出知识点的精髓,让读者很轻松地学习,并能灵活地应用到实际项目中。
基于理论,注重实践
在讲述过程中,不仅仅只介绍理论知识,而且在合适位置安排综合应用实例或者小型应用程序,将理论应用到实践当中,来加强读者实际应用能力,巩固开发基础和知识。
书中采用大量的实例进行讲解,力求通过实际操作使读者更容易地掌握Oracle数据库应用。
难度适中,内容由浅入深,实用性强,覆盖面广,条理清晰。
知识点全
紧紧围绕Oracle数据库展开讲解,具有很强的逻辑性和系统性。
实例丰富
各章实例短小却又能体现出知识点的精髓,让读者很轻松地学习,并能灵活地应用到实际项目中。
基于理论,注重实践
在讲述过程中,不仅仅只介绍理论知识,而且在合适位置安排综合应用实例或者小型应用程序,将理论应用到实践当中,来加强读者实际应用能力,巩固开发基础和知识。
内容简介
Oracle数据库系统是数据库领域*秀的数据库之一,《Oracle 12c数据库入门与应用》以Oracle*版本12c为蓝本,系统地讲述了Oracle数据库的概念、管理和应用开发等内容。全书结构合理、内容翔实、示例丰富、语言简洁。从实际角度出发,系统地介绍了数据库和Oracle的相关概念和原理、数据维护(查询、更新和删除)、Oracle数据库管理(如安装与启动、用户权限)以及Oracle的应用开发基础,并在*后通过设计医院预约挂号系统数据库讲解开发的详细过程。
《Oracle 12c数据库入门与应用》面向数据库管理人员和数据库开发人员,是初学者很好的入门教程,对Oracle管理员和应用程序开发员也有很好的学习和参考价值,也可以作为各大、中专院校相关专业的参考用书和相关培训机构的培训教材。
《Oracle 12c数据库入门与应用》面向数据库管理人员和数据库开发人员,是初学者很好的入门教程,对Oracle管理员和应用程序开发员也有很好的学习和参考价值,也可以作为各大、中专院校相关专业的参考用书和相关培训机构的培训教材。
目 录
第1章 关系数据库与Oracle 12c
1.1 数据库的概念 2
1.1.1 数据库概述 2
1.1.2 数据库模型 2
1.2 了解关系型数据库 3
1.2.1 数据库的组成 3
1.2.2 常见术语 4
1.2.3 完整性规则 5
1.3 范式理论和E-R模型 5
1.3.1 范式理论 6
1.3.2 E-R模型 7
1.3.3 实践案例:E-R模型转换为关系模型 8
1.4 了解Oracle 12c 9
1.4.1 发展历史 9
1.4.2 数据库版本 10
1.4.3 新特性 12
1.5 实践案例:安装Oracle 12c数据库管理系统 14
1.6 实践案例:登录Oracle数据库 18
1.7 实践案例:Oracle用户解锁 20
1.8 Oracle 12c的体系结构 21
1.8.1 内存结构 21
1.8.2 进程结构 22
1.8.3 物理结构 22
1.9 练习题 23
第2章 Oracle的基本操作
2.1 Web管理工具——OEM 26
2.1.1 登录OEM 26
2.1.2 使用OEM 27
2.2 命令行工具——SQL Plus 30
2.2.1 SQL Plus简介 30
2.2.2 连接Oracle 30
2.2.3 断开连接 32
2.2.4 查看表结构 32
2.2.5 编辑缓存区内容 33
2.2.6 保存缓存区内容 35
2.2.7 使用变量 36
2.2.8 使用提示参数 37
2.3 图形工具——SQL Developer 38
2.3.1 打开SQL Developer 38
2.3.2 连接Oracle 38
2.3.3 执行存储过程 40
2.3.4 导出数据 42
2.4 网络配置助手 44
2.4.1 配置监听程序 44
2.4.2 配置命名方法 46
2.4.3 配置本地NET服务名 47
2.5 网络管理器 49
2.6 数据库管理助手 51
2.7 练习题 55
第3章 操作Oracle数据表
3.1 Oracle数据表 58
3.1.1 数据表概述 58
3.1.2 数据表的创建规则 59
3.1.3 Oracle中表的类型 60
3.2 Oracle表列的数据类型 61
3.3 创建表 63
3.3.1 创建表的语句 63
3.3.2 指定表空间 64
3.3.3 指定存储参数 64
3.4 实践案例:使用设计器创建表 65
3.5 修改表属性 67
3.5.1 增加列 67
3.5.2 删除列 67
3.5.3 更新列 68
3.5.4 更改存储表空间 70
3.5.5 更改存储参数 70
3.6 重命名表 71
3.7 删除表定义 71
3.8 分析表 72
3.8.1 验证表的存储情况 72
3.8.2 查看表的统计信息 73
3.8.3 查找表中的连接记录和迁移记录 74
3.8.4 dbms_stats表 76
3.8.5 dbms_stats与analyze对比 80
3.9 实践案例:创建导游信息表 80
3.10 练习题 81
第4章 维护表的完整性
4.1 数据完整性简介 84
4.2 主键约束 85
4.2.1 主键约束简介 85
4.2.2 创建表时定义主键约束 85
4.2.3 为现有表添加主键约束 86
4.2.4 删除主键约束 86
4.2.5 在设计器中设置主键约束 86
4.3 约束 87
4.3.1 创建表时定义约束 87
4.3.2 为现有表添加约束 87
4.3.3 删除约束 88
4.3.4 在设计器中设置约束 88
4.4 非空约束 89
4.4.1 创建表时定义非空约束 89
4.4.2 为现有表添加非空约束 89
4.4.3 删除非空约束 90
4.4.4 使用设计器设置非空约束 91
4.5 外键约束 91
4.5.1 外键约束简介 92
4.5.2 创建表时定义外键约束 92
4.5.3 对现有表添加外键约束 93
4.5.4 外键的引用类型 93
4.5.5 删除外键约束 94
4.5.6 使用设计器设置外键约束 94
4.6 检查约束 95
4.6.1 使用SQL语句添加检查约束 95
4.6.2 使用设计器设置检查约束 96
4.7 操作约束 97
4.7.1 查询约束信息 97
4.7.2 禁止和激活约束 98
4.7.3 约束的状态 101
4.7.4 延迟约束 102
4.8 实践案例:设计电器信息管理表 102
4.9 练习题 105
第5章 SELECT简单查询
5.1 SQL语言简介 108
5.1.1 特点 108
5.1.2 分类 108
5.1.3 语句编写的规则 109
5.2 SELECT语句的语法格式 109
5.3 简单查询 110
5.3.1 查询所有列 110
5.3.2 查询指定列 111
5.3.3 使用别名 111
5.3.4 查询不重复数据 112
5.3.5 查询计算列 113
5.4 按条件查询 114
5.4.1 比较条件 114
5.4.2 范围条件 115
5.4.3 逻辑条件 116
5.4.4 模糊条件 117
5.4.5 列表条件 118
5.4.6 实践案例:查询NULL值 119
5.5 结果集的规范化 120
5.5.1 排序 120
5.5.2 分组 121
5.5.3 筛选 122
5.6 实践案例:分页查询会员信息 123
5.7 实践案例:员工信息查询 125
5.8 练习题 126
第6章 修改表数据
6.1 插入数据 130
6.1.1 INSERT语句的语法格式 130
6.1.2 插入单行数据 130
6.1.3 插入多行数据 132
6.2 更新数据 132
6.2.1 UPDATE语句的语法格式 133
6.2.2 更新单列 133
6.2.3 更新多列 134
6.2.4 基于他表更新列 134
6.3 删除数据 135
6.3.1 DELETE语句的语法格式 135
6.3.2 删除数据 136
6.3.3 清空表 136
6.4 合并数据 137
6.4.1 MERGE语句的语法格式 137
6.4.2 执行更新操作 138
6.4.3 执行插入操作 138
6.4.4 限制条件的更新和插入 139
6.4.5 使用常量表达式 140
6.4.6 执行删除操作 140
6.5 练习题 141
第7章 高级查询
7.1 子查询 144
7.1.1 子查询的使用规则 144
7.1.2 单行子查询 144
7.1.3 实践案例:单行子查询常见错误解析 147
7.1.4 使用IN操作符 148
7.1.5 使用ANY操作符 149
7.1.6 使用ALL操作符 150
7.1.7 使用EXISTS操作符 151
7.1.8 使用UPDATE语句 152
7.1.9 使用DELETE语句 152
7.1.10 实践案例:多层嵌套子查询 153
7.2 多表查询的语法格式 153
7.2.1 消除笛卡儿积 154
7.2.2 基本连接 154
7.3 内连接 156
7.3.1 等值内连接 156
7.3.2 非等值内连接 157
7.3.3 自然连接 159
7.4 外连接 160
7.4.1 左外连接 160
7.4.2 右外连接 161
7.4.3 完全连接 162
7.5 联合查询 163
7.5.1 UNION ALL查询 163
7.5.2 UNION查询 164
7.5.3 MINUS查询 164
7.5.4 INTERSECT查询 165
7.6 交叉连接 166
7.7 实践案例:查询超市商品信息 166
7.8 练习题 168
第8章 Oracle表空间的管理
8.1 Oracle表空间简介 172
8.1.1 了解表空间 172
8.1.2 表空间的类型 172
8.1.3 表空间的状态 173
8.2 实践案例:创建一个表空间 173
8.3 实践案例:查询表空间的信息 176
8.4 修改表空间的属性 178
8.4.1 修改表空间的名称 179
8.4.2 修改表空间的大小 179
8.4.3 切换只读和读写状态 180
8.4.4 切换脱机和联机状态 180
8.5 操作表空间 182
8.5.1 本地化管理 182
8.5.2 增加数据文件 183
8.5.3 移动数据文件 183
8.5.4 删除表空间 184
8.6 实践案例:修改默认表空间 184
8.7 还原表空间 186
8.7.1 创建还原表空间 186
8.7.2 管理还原表空间 186
8.7.3 更改还原表空间的方式 188
8.8 临时表空间 189
8.8.1 了解临时表空间 189
8.8.2 创建临时表空间 190
8.8.3 修改临时表空间 190
8.8.4 临时表空间组 191
8.9 实践案例:创建购物系统的表空间 193
8.10 练习题 195
第9章 PL/SQL编程基础
9.1 PL/SQL概述 198
9.1.1 PL/SQL语言的特点 198
9.1.2 PL/SQL代码的编写规则 198
9.2 PL/SQL的编程结构 199
9.2.1 PL/SQL程序块 199
9.2.2 数据类型 200
9.2.3 PL/SQL程序的注释 200
9.3 变量 201
9.3.1 标识符的定义规则 201
9.3.2 声明变量 202
9.3.3 变量赋值 203
9.3.4 %TYPE操作符 203
9.3.5 %ROWTYPE操作符 204
9.4 常量 205
9.5 字符集 206
9.5.1 字符集的概念 206
9.5.2 查看字符集 207
9.6 运算符 208
9.6.1 连接运算符 208
9.6.2 算术运算符 209
9.6.3 比较运算符 209
9.6.4 逻辑运算符 210
9.7 流程控制语句 211
9.7.1 分支语句 212
9.7.2 循环语句 214
9.7.3 跳转语句 216
9.7.4 语句嵌套 219
9.8 实践案例:输出九九乘法表 220
9.9 异常处理 220
9.9.1 异常的语法结构 220
9.9.2 预定义异常 221
9.9.3 非预定义异常 223
9.9.4 自定义异常 223
9.10 练习题 225
第10章 PL/SQL应用编程
10.1 系统函数 229
10.1.1 字符函数 229
10.1.2 数学函数 231
10.1.3 聚合函数 232
10.1.4 日期函数 233
10.1.5 转换函数 235
10.2 自定义函数 236
10.2.1 创建函数语法 236
10.2.2 调用函数 237
10.2.3 查看函数源代码 238
10.2.4 删除函数 239
10.2.5 实践案例:使用SQL Developer工具操作函数 239
10.3 实践案例:实现MD5加密 240
10.4 使用集合 241
10.4.1 嵌套表 241
10.4.2 可变数组 243
10.4.3 索引表 246
10.4.4 集合方法 247
10.4.5 实践案例:使用PL/SQL记录表 248
10.5 使用游标 249
10.5.1 游标简介 249
10.5.2 声明游标 249
10.5.3 打开游标 250
10.5.4 检索游标 251
10.5.5 关闭游标 251
10.5.6 实践案例:LOOP循环游标 252
10.5.7 实践案例:FOR循环游标 252
10.5.8 游标属性 253
10.5.9 游标变量 255
10.6 实践案例:使用游标更新和删除数据 257
10.7 使用事务 259
10.7.1 事务概述 259
10.7.2 事务控制 260
10.7.3 使用事务 261
10.7.4 实践案例:更新账户余额 262
10.8 使用锁 263
10.8.1 锁的分类 263
10.8.2 锁的查询语句 264
10.9 练习题 265
第11章 管理数据库对象
11.1 包 268
11.1.1 包简介 268
11.1.2 系统预定义包 268
11.1.3 创建包声明 271
11.1.4 创建包主体 272
11.1.5 使用包 274
11.1.6 修改和删除包 275
11.2 序列 275
11.2.1 创建序列 275
11.2.2 使用序列 276
11.2.3 修改序列 278
11.2.4 删除序列 278
11.2.5 自动序列 279
11.3 同义词 280
11.3.1 同义词简介 280
11.3.2 创建同义词 281
11.3.3 删除同义词 282
11.4 索引 282
11.4.1 索引简介 282
11.4.2 创建索引 286
11.4.3 创建B树索引 287
11.4.4 创建位图索引 288
11.4.5 创建函数索引 289
11.4.6 重命名索引 290
11.4.7 合并索引 290
11.4.8 重建索引 291
11.4.9 监视索引 291
11.4.10 删除索引 292
11.5 视图 292
11.5.1 视图简介 293
11.5.2 创建视图 293
11.5.3 查询视图 295
11.5.4 操作视图 296
11.5.5 删除视图 298
11.5.6 实践案例:使用SQL Developer操作视图 299
11.5.7 视图的WITH子句 299
11.6 Oracle伪列 301
11.6.1 ROWNUM伪列 301
11.6.2 ROWID伪列 302
11.6.3 实践案例:删除重复数据 303
11.7 实践案例:获取分页数据 304
11.8 练习题 305
第12章 存储过程和触发器
12.1 创建存储过程 309
12.2 实践案例:创建一个更新密码的存储过程 309
12.3 管理存储过程 310
12.3.1 查看存储过程信息 310
12.3.2 实践案例:调用存储过程 311
12.3.3 修改存储过程 311
12.3.4 删除存储过程 312
12.4 使用参数 313
12.4.1 输入参数 313
12.4.2 输出参数 315
12.4.3 同时包含输入和输出参数 315
12.4.4 参数默认值 316
12.5 触发器 318
12.5.1 触发器简介 318
12.5.2 触发器类型 318
12.6 创建触发器 319
12.6.1 创建触发器语法 319
12.6.2 DML触发器 320
12.6.3 DDL触发器 324
12.6.4 INSTEAD OF触发器 325
12.7 实践案例:跟踪数据库和用户状态 327
12.8 管理触发器 330
12.8.1 查看触发器信息 330
12.8.2 改变触发器的状态 330
12.8.3 删除触发器 331
12.9 实践案例:实现主键自动增长 331
12.10 练习题 332
第13章 Oracle数据库的安全性
13.1 用户和模式 336
13.1.1 用户 336
13.1.2 模式 337
13.2 创建用户 337
13.3 管理用户 338
13.3.1 查看用户 339
13.3.2 修改用户 339
13.3.3 删除用户 341
13.3.4 管理用户会话 341
13.4 实践案例:使用SQL Developer管理用户 343
13.5 管理权限 345
13.5.1 系统权限 345
13.5.2 对象权限 346
13.6 角色 348
13.6.1 角色概述 348
13.6.2 系统预定义角色 349
13.6.3 创建角色 350
13.7 管理角色 350
13.7.1 角色授权 350
13.7.2 为用户授予角色 351
13.7.3 修改角色密码 351
13.7.4 取消角色权限 352
13.7.5 禁用与启用角色 352
13.7.6 查看角色 352
13.7.7 删除角色 353
13.8 配置文件 353
13.8.1 创建配置文件 353
13.8.2 查看配置文件 355
13.8.3 修改配置文件 355
13.8.4 删除配置文件 355
13.9 练习题 355
第14章 Oracle数据库文件
14.1 控制文件 358
14.1.1 控件文件简介 358
14.1.2 创建控制文件 359
14.1.3 查看控制文件信息 362
14.1.4 移动和删除控制文件 363
14.1.5 备份控制文件 364
14.1.6 恢复控制文件 365
14.2 实践案例:多路复用控制文件策略 365
14.3 重做日志文件 367
14.3.1 重做日志文件简介 367
14.3.2 重做记录和回滚段 367
14.3.3 查看重做日志文件 368
14.3.4 创建重做日志文件组 369
14.3.5 切换重做日志组 370
14.3.6 实践案例:管理重做日志组成员 371
14.3.7 设置重做日志模式 372
14.3.8 删除重做日志组 374
14.4 数据文件 374
14.4.1 数据文件简介 374
14.4.2 创建数据文件 375
14.4.3 查看数据文件信息 376
14.4.4 修改数据文件大小和状态 377
14.4.5 修改数据文件的位置 378
14.4.6 删除数据文件 379
14.5 实践案例:操作数据文件 379
14.6 练习题 381
第15章 医院预约挂号系统数据库的设计
15.1 系统概述 384
15.1.1 开发背景 384
15.1.2 可行性分析 384
15.1.3 功能性分析 385
15.2 数据库E-R图的设计 386
15.3 数据库的设计 386
15.3.1 创建表空间和用户 387
15.3.2 创建数据表 387
15.3.3 创建约束 391
15.3.4 创建视图 391
15.3.5 创建序列 392
15.3.6 创建存储过程 393
15.4 业务测试 395
15.4.1 注册就诊信息 396
15.4.2 注册医生数据 397
15.4.3 更改密码 398
15.4.4 更新患者姓名 398
15.4.5 修改密码 399
15.4.6 更改医生信息 400
15.4.7 查询预约信息 401
练习题答案
1.1 数据库的概念 2
1.1.1 数据库概述 2
1.1.2 数据库模型 2
1.2 了解关系型数据库 3
1.2.1 数据库的组成 3
1.2.2 常见术语 4
1.2.3 完整性规则 5
1.3 范式理论和E-R模型 5
1.3.1 范式理论 6
1.3.2 E-R模型 7
1.3.3 实践案例:E-R模型转换为关系模型 8
1.4 了解Oracle 12c 9
1.4.1 发展历史 9
1.4.2 数据库版本 10
1.4.3 新特性 12
1.5 实践案例:安装Oracle 12c数据库管理系统 14
1.6 实践案例:登录Oracle数据库 18
1.7 实践案例:Oracle用户解锁 20
1.8 Oracle 12c的体系结构 21
1.8.1 内存结构 21
1.8.2 进程结构 22
1.8.3 物理结构 22
1.9 练习题 23
第2章 Oracle的基本操作
2.1 Web管理工具——OEM 26
2.1.1 登录OEM 26
2.1.2 使用OEM 27
2.2 命令行工具——SQL Plus 30
2.2.1 SQL Plus简介 30
2.2.2 连接Oracle 30
2.2.3 断开连接 32
2.2.4 查看表结构 32
2.2.5 编辑缓存区内容 33
2.2.6 保存缓存区内容 35
2.2.7 使用变量 36
2.2.8 使用提示参数 37
2.3 图形工具——SQL Developer 38
2.3.1 打开SQL Developer 38
2.3.2 连接Oracle 38
2.3.3 执行存储过程 40
2.3.4 导出数据 42
2.4 网络配置助手 44
2.4.1 配置监听程序 44
2.4.2 配置命名方法 46
2.4.3 配置本地NET服务名 47
2.5 网络管理器 49
2.6 数据库管理助手 51
2.7 练习题 55
第3章 操作Oracle数据表
3.1 Oracle数据表 58
3.1.1 数据表概述 58
3.1.2 数据表的创建规则 59
3.1.3 Oracle中表的类型 60
3.2 Oracle表列的数据类型 61
3.3 创建表 63
3.3.1 创建表的语句 63
3.3.2 指定表空间 64
3.3.3 指定存储参数 64
3.4 实践案例:使用设计器创建表 65
3.5 修改表属性 67
3.5.1 增加列 67
3.5.2 删除列 67
3.5.3 更新列 68
3.5.4 更改存储表空间 70
3.5.5 更改存储参数 70
3.6 重命名表 71
3.7 删除表定义 71
3.8 分析表 72
3.8.1 验证表的存储情况 72
3.8.2 查看表的统计信息 73
3.8.3 查找表中的连接记录和迁移记录 74
3.8.4 dbms_stats表 76
3.8.5 dbms_stats与analyze对比 80
3.9 实践案例:创建导游信息表 80
3.10 练习题 81
第4章 维护表的完整性
4.1 数据完整性简介 84
4.2 主键约束 85
4.2.1 主键约束简介 85
4.2.2 创建表时定义主键约束 85
4.2.3 为现有表添加主键约束 86
4.2.4 删除主键约束 86
4.2.5 在设计器中设置主键约束 86
4.3 约束 87
4.3.1 创建表时定义约束 87
4.3.2 为现有表添加约束 87
4.3.3 删除约束 88
4.3.4 在设计器中设置约束 88
4.4 非空约束 89
4.4.1 创建表时定义非空约束 89
4.4.2 为现有表添加非空约束 89
4.4.3 删除非空约束 90
4.4.4 使用设计器设置非空约束 91
4.5 外键约束 91
4.5.1 外键约束简介 92
4.5.2 创建表时定义外键约束 92
4.5.3 对现有表添加外键约束 93
4.5.4 外键的引用类型 93
4.5.5 删除外键约束 94
4.5.6 使用设计器设置外键约束 94
4.6 检查约束 95
4.6.1 使用SQL语句添加检查约束 95
4.6.2 使用设计器设置检查约束 96
4.7 操作约束 97
4.7.1 查询约束信息 97
4.7.2 禁止和激活约束 98
4.7.3 约束的状态 101
4.7.4 延迟约束 102
4.8 实践案例:设计电器信息管理表 102
4.9 练习题 105
第5章 SELECT简单查询
5.1 SQL语言简介 108
5.1.1 特点 108
5.1.2 分类 108
5.1.3 语句编写的规则 109
5.2 SELECT语句的语法格式 109
5.3 简单查询 110
5.3.1 查询所有列 110
5.3.2 查询指定列 111
5.3.3 使用别名 111
5.3.4 查询不重复数据 112
5.3.5 查询计算列 113
5.4 按条件查询 114
5.4.1 比较条件 114
5.4.2 范围条件 115
5.4.3 逻辑条件 116
5.4.4 模糊条件 117
5.4.5 列表条件 118
5.4.6 实践案例:查询NULL值 119
5.5 结果集的规范化 120
5.5.1 排序 120
5.5.2 分组 121
5.5.3 筛选 122
5.6 实践案例:分页查询会员信息 123
5.7 实践案例:员工信息查询 125
5.8 练习题 126
第6章 修改表数据
6.1 插入数据 130
6.1.1 INSERT语句的语法格式 130
6.1.2 插入单行数据 130
6.1.3 插入多行数据 132
6.2 更新数据 132
6.2.1 UPDATE语句的语法格式 133
6.2.2 更新单列 133
6.2.3 更新多列 134
6.2.4 基于他表更新列 134
6.3 删除数据 135
6.3.1 DELETE语句的语法格式 135
6.3.2 删除数据 136
6.3.3 清空表 136
6.4 合并数据 137
6.4.1 MERGE语句的语法格式 137
6.4.2 执行更新操作 138
6.4.3 执行插入操作 138
6.4.4 限制条件的更新和插入 139
6.4.5 使用常量表达式 140
6.4.6 执行删除操作 140
6.5 练习题 141
第7章 高级查询
7.1 子查询 144
7.1.1 子查询的使用规则 144
7.1.2 单行子查询 144
7.1.3 实践案例:单行子查询常见错误解析 147
7.1.4 使用IN操作符 148
7.1.5 使用ANY操作符 149
7.1.6 使用ALL操作符 150
7.1.7 使用EXISTS操作符 151
7.1.8 使用UPDATE语句 152
7.1.9 使用DELETE语句 152
7.1.10 实践案例:多层嵌套子查询 153
7.2 多表查询的语法格式 153
7.2.1 消除笛卡儿积 154
7.2.2 基本连接 154
7.3 内连接 156
7.3.1 等值内连接 156
7.3.2 非等值内连接 157
7.3.3 自然连接 159
7.4 外连接 160
7.4.1 左外连接 160
7.4.2 右外连接 161
7.4.3 完全连接 162
7.5 联合查询 163
7.5.1 UNION ALL查询 163
7.5.2 UNION查询 164
7.5.3 MINUS查询 164
7.5.4 INTERSECT查询 165
7.6 交叉连接 166
7.7 实践案例:查询超市商品信息 166
7.8 练习题 168
第8章 Oracle表空间的管理
8.1 Oracle表空间简介 172
8.1.1 了解表空间 172
8.1.2 表空间的类型 172
8.1.3 表空间的状态 173
8.2 实践案例:创建一个表空间 173
8.3 实践案例:查询表空间的信息 176
8.4 修改表空间的属性 178
8.4.1 修改表空间的名称 179
8.4.2 修改表空间的大小 179
8.4.3 切换只读和读写状态 180
8.4.4 切换脱机和联机状态 180
8.5 操作表空间 182
8.5.1 本地化管理 182
8.5.2 增加数据文件 183
8.5.3 移动数据文件 183
8.5.4 删除表空间 184
8.6 实践案例:修改默认表空间 184
8.7 还原表空间 186
8.7.1 创建还原表空间 186
8.7.2 管理还原表空间 186
8.7.3 更改还原表空间的方式 188
8.8 临时表空间 189
8.8.1 了解临时表空间 189
8.8.2 创建临时表空间 190
8.8.3 修改临时表空间 190
8.8.4 临时表空间组 191
8.9 实践案例:创建购物系统的表空间 193
8.10 练习题 195
第9章 PL/SQL编程基础
9.1 PL/SQL概述 198
9.1.1 PL/SQL语言的特点 198
9.1.2 PL/SQL代码的编写规则 198
9.2 PL/SQL的编程结构 199
9.2.1 PL/SQL程序块 199
9.2.2 数据类型 200
9.2.3 PL/SQL程序的注释 200
9.3 变量 201
9.3.1 标识符的定义规则 201
9.3.2 声明变量 202
9.3.3 变量赋值 203
9.3.4 %TYPE操作符 203
9.3.5 %ROWTYPE操作符 204
9.4 常量 205
9.5 字符集 206
9.5.1 字符集的概念 206
9.5.2 查看字符集 207
9.6 运算符 208
9.6.1 连接运算符 208
9.6.2 算术运算符 209
9.6.3 比较运算符 209
9.6.4 逻辑运算符 210
9.7 流程控制语句 211
9.7.1 分支语句 212
9.7.2 循环语句 214
9.7.3 跳转语句 216
9.7.4 语句嵌套 219
9.8 实践案例:输出九九乘法表 220
9.9 异常处理 220
9.9.1 异常的语法结构 220
9.9.2 预定义异常 221
9.9.3 非预定义异常 223
9.9.4 自定义异常 223
9.10 练习题 225
第10章 PL/SQL应用编程
10.1 系统函数 229
10.1.1 字符函数 229
10.1.2 数学函数 231
10.1.3 聚合函数 232
10.1.4 日期函数 233
10.1.5 转换函数 235
10.2 自定义函数 236
10.2.1 创建函数语法 236
10.2.2 调用函数 237
10.2.3 查看函数源代码 238
10.2.4 删除函数 239
10.2.5 实践案例:使用SQL Developer工具操作函数 239
10.3 实践案例:实现MD5加密 240
10.4 使用集合 241
10.4.1 嵌套表 241
10.4.2 可变数组 243
10.4.3 索引表 246
10.4.4 集合方法 247
10.4.5 实践案例:使用PL/SQL记录表 248
10.5 使用游标 249
10.5.1 游标简介 249
10.5.2 声明游标 249
10.5.3 打开游标 250
10.5.4 检索游标 251
10.5.5 关闭游标 251
10.5.6 实践案例:LOOP循环游标 252
10.5.7 实践案例:FOR循环游标 252
10.5.8 游标属性 253
10.5.9 游标变量 255
10.6 实践案例:使用游标更新和删除数据 257
10.7 使用事务 259
10.7.1 事务概述 259
10.7.2 事务控制 260
10.7.3 使用事务 261
10.7.4 实践案例:更新账户余额 262
10.8 使用锁 263
10.8.1 锁的分类 263
10.8.2 锁的查询语句 264
10.9 练习题 265
第11章 管理数据库对象
11.1 包 268
11.1.1 包简介 268
11.1.2 系统预定义包 268
11.1.3 创建包声明 271
11.1.4 创建包主体 272
11.1.5 使用包 274
11.1.6 修改和删除包 275
11.2 序列 275
11.2.1 创建序列 275
11.2.2 使用序列 276
11.2.3 修改序列 278
11.2.4 删除序列 278
11.2.5 自动序列 279
11.3 同义词 280
11.3.1 同义词简介 280
11.3.2 创建同义词 281
11.3.3 删除同义词 282
11.4 索引 282
11.4.1 索引简介 282
11.4.2 创建索引 286
11.4.3 创建B树索引 287
11.4.4 创建位图索引 288
11.4.5 创建函数索引 289
11.4.6 重命名索引 290
11.4.7 合并索引 290
11.4.8 重建索引 291
11.4.9 监视索引 291
11.4.10 删除索引 292
11.5 视图 292
11.5.1 视图简介 293
11.5.2 创建视图 293
11.5.3 查询视图 295
11.5.4 操作视图 296
11.5.5 删除视图 298
11.5.6 实践案例:使用SQL Developer操作视图 299
11.5.7 视图的WITH子句 299
11.6 Oracle伪列 301
11.6.1 ROWNUM伪列 301
11.6.2 ROWID伪列 302
11.6.3 实践案例:删除重复数据 303
11.7 实践案例:获取分页数据 304
11.8 练习题 305
第12章 存储过程和触发器
12.1 创建存储过程 309
12.2 实践案例:创建一个更新密码的存储过程 309
12.3 管理存储过程 310
12.3.1 查看存储过程信息 310
12.3.2 实践案例:调用存储过程 311
12.3.3 修改存储过程 311
12.3.4 删除存储过程 312
12.4 使用参数 313
12.4.1 输入参数 313
12.4.2 输出参数 315
12.4.3 同时包含输入和输出参数 315
12.4.4 参数默认值 316
12.5 触发器 318
12.5.1 触发器简介 318
12.5.2 触发器类型 318
12.6 创建触发器 319
12.6.1 创建触发器语法 319
12.6.2 DML触发器 320
12.6.3 DDL触发器 324
12.6.4 INSTEAD OF触发器 325
12.7 实践案例:跟踪数据库和用户状态 327
12.8 管理触发器 330
12.8.1 查看触发器信息 330
12.8.2 改变触发器的状态 330
12.8.3 删除触发器 331
12.9 实践案例:实现主键自动增长 331
12.10 练习题 332
第13章 Oracle数据库的安全性
13.1 用户和模式 336
13.1.1 用户 336
13.1.2 模式 337
13.2 创建用户 337
13.3 管理用户 338
13.3.1 查看用户 339
13.3.2 修改用户 339
13.3.3 删除用户 341
13.3.4 管理用户会话 341
13.4 实践案例:使用SQL Developer管理用户 343
13.5 管理权限 345
13.5.1 系统权限 345
13.5.2 对象权限 346
13.6 角色 348
13.6.1 角色概述 348
13.6.2 系统预定义角色 349
13.6.3 创建角色 350
13.7 管理角色 350
13.7.1 角色授权 350
13.7.2 为用户授予角色 351
13.7.3 修改角色密码 351
13.7.4 取消角色权限 352
13.7.5 禁用与启用角色 352
13.7.6 查看角色 352
13.7.7 删除角色 353
13.8 配置文件 353
13.8.1 创建配置文件 353
13.8.2 查看配置文件 355
13.8.3 修改配置文件 355
13.8.4 删除配置文件 355
13.9 练习题 355
第14章 Oracle数据库文件
14.1 控制文件 358
14.1.1 控件文件简介 358
14.1.2 创建控制文件 359
14.1.3 查看控制文件信息 362
14.1.4 移动和删除控制文件 363
14.1.5 备份控制文件 364
14.1.6 恢复控制文件 365
14.2 实践案例:多路复用控制文件策略 365
14.3 重做日志文件 367
14.3.1 重做日志文件简介 367
14.3.2 重做记录和回滚段 367
14.3.3 查看重做日志文件 368
14.3.4 创建重做日志文件组 369
14.3.5 切换重做日志组 370
14.3.6 实践案例:管理重做日志组成员 371
14.3.7 设置重做日志模式 372
14.3.8 删除重做日志组 374
14.4 数据文件 374
14.4.1 数据文件简介 374
14.4.2 创建数据文件 375
14.4.3 查看数据文件信息 376
14.4.4 修改数据文件大小和状态 377
14.4.5 修改数据文件的位置 378
14.4.6 删除数据文件 379
14.5 实践案例:操作数据文件 379
14.6 练习题 381
第15章 医院预约挂号系统数据库的设计
15.1 系统概述 384
15.1.1 开发背景 384
15.1.2 可行性分析 384
15.1.3 功能性分析 385
15.2 数据库E-R图的设计 386
15.3 数据库的设计 386
15.3.1 创建表空间和用户 387
15.3.2 创建数据表 387
15.3.3 创建约束 391
15.3.4 创建视图 391
15.3.5 创建序列 392
15.3.6 创建存储过程 393
15.4 业务测试 395
15.4.1 注册就诊信息 396
15.4.2 注册医生数据 397
15.4.3 更改密码 398
15.4.4 更新患者姓名 398
15.4.5 修改密码 399
15.4.6 更改医生信息 400
15.4.7 查询预约信息 401
练习题答案
前 言
前言
Oracle Database(Oracle数据库)是甲骨文公司(即Oracle公司)以高级结构化查询语言(SQL)为基础设计的大型关系数据库。Oracle系统采用的是并行服务器模式,能在对称多CPU的系统上提供并行处理,拥有可移植性强、可用性强、可扩展性强、数据安全性强和高稳定性等优点,能适应高吞吐量的数据库,适用于各类大、中、小、微型计算机环境,是目前流行的数据库之一。
甲骨文公司在2013年发布了Oracle Database 12c正式版,版本号是12.1.0.1.0,支持的平台有Windows、Linux、Solaris,这次的命名用了c而不是以前的g(Grid),c代表Cloud(云计算)的意思。Oracle 12c新增了诸多的新特性,在数据类型、分区表、统计信息、数据优化等方面都有所改进,功能比上一版本强大很多。
本书以Oracle Database 12c为例,详细介绍初学Oracle所需掌握的常用知识点。适合作为Oracle数据库基础入门学习书籍,也可以帮助中级读者提高使用数据的技能,适合大专院校在校学生、程序开发人员以及编程爱好者学习和参考。
本书内容
全书共分为15章,各章主要内容如下。
第1章 关系数据库与Oracle 12c。本章从数据库的基本概念开始介绍,进而讲解Oracle 12c的安装、登录方式及其体系结构。
第2章 Oracle的基本操作。本章使用6种工具来讲解Oracle 12c的基本操作,分别是OEM、SQL Plus、SQL Developer、网络配置助手、网络管理器和数据库管理助手。
第3章 操作Oracle数据表。本章介绍了数据表的概念和创建规则,重点介绍表的各种操作,像创建表、指定表属性、删除表以及分析表等。
第4章 维护表的完整性。本章详细介绍Oracle中约束数据完整性的各种方法,如约束不能为空和不能重复等。
第5章 SELECT简单查询。本章主要介绍SELECT语句查询数据的简单方法,如查询所有列、查询不重复列、查询时指定范围和列表以及对结果集进行排序和分组等。
第6章 修改表数据。本章详细介绍修改表中数据的各种方法,如直接插入、根据条件更新和删除以及批量导入等。
第7章 高级查询。本章主要介绍SELECT语句多表查询的高级方法,包括子查询、多表基本连接、内连接、外连接和交叉连接等。
第8章 Oracle表空间的管理。本章主要介绍Oracle中的各种表空间,包括表空间的创建、修改、切换和管理等操作。
第9章 PL/SQL编程基础。本章主要详细介绍PL/SQL编程所需掌握的基础,包括PL/SQL编写规则、编程结构、变量和常量的声明与使用、字符集、运算符以及流程结构和异常处理等。
第10章 PL/SQL应用编程。本章从6个方面介绍PL/SQL编程的高级应用,分别是系统函数、自定义函数、PL/SQL集合、游标、数据库事务和锁。
第11章 管理数据库对象。本章主要介绍Oracle数据库中常用的6个对象,分别是包、序列、同义词、索引、视图和伪列。
第12章 存储过程和触发器。本章主要介绍Oracle中存储过程与触发器的创建、调用以及管理方法。
第13章 Oracle数据库的安全性。本章主要介绍Oracle 12c中与安全性有关的对象,包括用户、角色和权限以及这些对象的操作。
第14章 Oracle数据库文件。本章主要介绍Oracle中三类文件的创建与管理,分别是控制文件、日志文件和数据文件。
第15章 医院预约挂号系统数据库的设计。本章以医院预约挂号系统为背景进行需求分析,然后在Oracle 12c中实现。具体实现包括表空间和用户的创建、创建表和视图,并在后模拟实现常见业务的办理。
本书特色
本书中采用大量的实例进行讲解,力求通过实际操作使读者更容易地掌握Oracle数据库应用。
本书难度适中,内容由浅入深,实用性强,覆盖面广,条理清晰。
知识点全
本书紧紧围绕Oracle数据库展开讲解,具有很强的逻辑性和系统性。
实例丰富
各章实例短小却又能体现出知识点的精髓,让读者很轻松地学习,并能灵活地应用到实际项目中。
基于理论,注重实践
在讲述过程中,不仅仅只介绍理论知识,而且在合适位置安排综合应用实例或者小型应用程序,将理论应用到实践当中,来加强读者实际应用能力,巩固开发基础和知识。
贴心的提示
为了便于读者阅读,全书还穿插着一些技巧、提示等小贴士,体例约定如下。
提示:通常是一些贴心的提醒,让读者加深印象或提供建议,或者解决问题的方法。
注意:提出学习过程中需要特别注意的一些知识点和内容,或者相关信息。
技巧:通过简短的文字,指出知识点在应用时的一些小窍门。
读者对象
本书可以作为Oracle数据库的入门书籍,也可以帮助中级读者提高技能。本书适合以下人员阅读学习。
• 没有数据库应用基础的Oracle 入门人员。
• 有一些数据库应用基础,并且希望全面学习Oracle 数据库的读者。
• 各大中专院校的在校学生和相关授课老师。
• 相关社会培训班的学员。
本书由靳智良、冯海燕编著,其他参与编写的人员还有侯政云、刘利利、郑志荣、肖进、侯艳书、崔再喜、侯政洪、李海燕、祝红涛、贺春雷等,在此表示感谢。在本书的编写过程中,我们力求精益求精,但难免存在一些不足之处,敬请广大读者批评指正。
编 者
Oracle Database(Oracle数据库)是甲骨文公司(即Oracle公司)以高级结构化查询语言(SQL)为基础设计的大型关系数据库。Oracle系统采用的是并行服务器模式,能在对称多CPU的系统上提供并行处理,拥有可移植性强、可用性强、可扩展性强、数据安全性强和高稳定性等优点,能适应高吞吐量的数据库,适用于各类大、中、小、微型计算机环境,是目前流行的数据库之一。
甲骨文公司在2013年发布了Oracle Database 12c正式版,版本号是12.1.0.1.0,支持的平台有Windows、Linux、Solaris,这次的命名用了c而不是以前的g(Grid),c代表Cloud(云计算)的意思。Oracle 12c新增了诸多的新特性,在数据类型、分区表、统计信息、数据优化等方面都有所改进,功能比上一版本强大很多。
本书以Oracle Database 12c为例,详细介绍初学Oracle所需掌握的常用知识点。适合作为Oracle数据库基础入门学习书籍,也可以帮助中级读者提高使用数据的技能,适合大专院校在校学生、程序开发人员以及编程爱好者学习和参考。
本书内容
全书共分为15章,各章主要内容如下。
第1章 关系数据库与Oracle 12c。本章从数据库的基本概念开始介绍,进而讲解Oracle 12c的安装、登录方式及其体系结构。
第2章 Oracle的基本操作。本章使用6种工具来讲解Oracle 12c的基本操作,分别是OEM、SQL Plus、SQL Developer、网络配置助手、网络管理器和数据库管理助手。
第3章 操作Oracle数据表。本章介绍了数据表的概念和创建规则,重点介绍表的各种操作,像创建表、指定表属性、删除表以及分析表等。
第4章 维护表的完整性。本章详细介绍Oracle中约束数据完整性的各种方法,如约束不能为空和不能重复等。
第5章 SELECT简单查询。本章主要介绍SELECT语句查询数据的简单方法,如查询所有列、查询不重复列、查询时指定范围和列表以及对结果集进行排序和分组等。
第6章 修改表数据。本章详细介绍修改表中数据的各种方法,如直接插入、根据条件更新和删除以及批量导入等。
第7章 高级查询。本章主要介绍SELECT语句多表查询的高级方法,包括子查询、多表基本连接、内连接、外连接和交叉连接等。
第8章 Oracle表空间的管理。本章主要介绍Oracle中的各种表空间,包括表空间的创建、修改、切换和管理等操作。
第9章 PL/SQL编程基础。本章主要详细介绍PL/SQL编程所需掌握的基础,包括PL/SQL编写规则、编程结构、变量和常量的声明与使用、字符集、运算符以及流程结构和异常处理等。
第10章 PL/SQL应用编程。本章从6个方面介绍PL/SQL编程的高级应用,分别是系统函数、自定义函数、PL/SQL集合、游标、数据库事务和锁。
第11章 管理数据库对象。本章主要介绍Oracle数据库中常用的6个对象,分别是包、序列、同义词、索引、视图和伪列。
第12章 存储过程和触发器。本章主要介绍Oracle中存储过程与触发器的创建、调用以及管理方法。
第13章 Oracle数据库的安全性。本章主要介绍Oracle 12c中与安全性有关的对象,包括用户、角色和权限以及这些对象的操作。
第14章 Oracle数据库文件。本章主要介绍Oracle中三类文件的创建与管理,分别是控制文件、日志文件和数据文件。
第15章 医院预约挂号系统数据库的设计。本章以医院预约挂号系统为背景进行需求分析,然后在Oracle 12c中实现。具体实现包括表空间和用户的创建、创建表和视图,并在后模拟实现常见业务的办理。
本书特色
本书中采用大量的实例进行讲解,力求通过实际操作使读者更容易地掌握Oracle数据库应用。
本书难度适中,内容由浅入深,实用性强,覆盖面广,条理清晰。
知识点全
本书紧紧围绕Oracle数据库展开讲解,具有很强的逻辑性和系统性。
实例丰富
各章实例短小却又能体现出知识点的精髓,让读者很轻松地学习,并能灵活地应用到实际项目中。
基于理论,注重实践
在讲述过程中,不仅仅只介绍理论知识,而且在合适位置安排综合应用实例或者小型应用程序,将理论应用到实践当中,来加强读者实际应用能力,巩固开发基础和知识。
贴心的提示
为了便于读者阅读,全书还穿插着一些技巧、提示等小贴士,体例约定如下。
提示:通常是一些贴心的提醒,让读者加深印象或提供建议,或者解决问题的方法。
注意:提出学习过程中需要特别注意的一些知识点和内容,或者相关信息。
技巧:通过简短的文字,指出知识点在应用时的一些小窍门。
读者对象
本书可以作为Oracle数据库的入门书籍,也可以帮助中级读者提高技能。本书适合以下人员阅读学习。
• 没有数据库应用基础的Oracle 入门人员。
• 有一些数据库应用基础,并且希望全面学习Oracle 数据库的读者。
• 各大中专院校的在校学生和相关授课老师。
• 相关社会培训班的学员。
本书由靳智良、冯海燕编著,其他参与编写的人员还有侯政云、刘利利、郑志荣、肖进、侯艳书、崔再喜、侯政洪、李海燕、祝红涛、贺春雷等,在此表示感谢。在本书的编写过程中,我们力求精益求精,但难免存在一些不足之处,敬请广大读者批评指正。
编 者
在线试读
1. 与表有关的术语
根据表3-1 中的内容,为大家介绍几个常见的与数据表有关的术语。
● 表结构。组成表的各列的名称及其数据类型,统称为表结构。
● 记录。每个表包含多个数据,它们是表的“值”,表中的一行称为一个记录。因此,表示记录的有限集合。
● 字段。每个记录由若干个数据项构成,将构成记录的每个数据项称为字段或者字段(列)。例如,表3-1 包含7 个字段,由3 条记录构成。
● 空值。空值通常表示未知、不可用或将在以后添加的数据,如果一个列允许为空值,则向表中输入记录值时可不为该列给出具体值;而一个列如果不允许为空值,则在输入时必须给出具体值。
● 关键字。如果表中记录的某一字段或字段组合能标识记录,则称该字段或字段组合为候选关键字。如果一个表有多个候选关键字,则选择其中一个为主关键字,简称主键。
当一个表仅有的一个候选关键字时,该候选关键字就是主关键字。
提示
表的关键字不允许为空值,空值不能与数值数据0 或者字符类型的空字符混为一谈。任意两个空值都不相等。
2. 表的特点
在Oracle 数据库中,数据表通常有以下特点。
● 表通常代表一类实体。表是将实体关系模型映射为二维表格的一种实现方式,在同一个数据库中,每一个表具有的名称。
● 表由行和列组成。二维表格是由横向的行和纵向的列组成。每一行表示一条完整的记录,对应于一个完整的数据实体。每一列表示每个实体对应的属性,列存储了多个实体对象的相同属性的值。
● 在同一个表中每一行的值具有性。另外,列名在同一个表中也具有性。
● 行和列具有无序性。在同一个表中,行的顺序可以任意排列,通常按照数据插入的先后顺序存储。在使用过程中,经常对表中的行使用索引进行排序,或者在检索时使用排序语句。另外,列的顺序也可以任意排列,列的先后顺序对于数据的存储没有实质影响。
3.1.2 数据表的创建规则
在Oracle 中表的创建并不难。但是,作为一个合格的数据管理者或者开发者,在创建数据表之前首先必须要确定当前项目需要创建哪些表、表中要包含哪些列以及这些列所要使用的数据类型等。这就是表的创建规则,是需要在表创建之前确定的。下面罗列了创建数据表时需要考虑的几个方面。
1. 数据表的设计依据
在设计表的时候,首先要根据系统需求提取所需要的表以及每个表所包含的字段;然后根据数据库的特性,对表的结构进行分析设计。表的设计通常要遵循以下几点。
(1)表的类型,如堆表、临时表或者索引等。
(2)表中每个字段的数据类型,如NUMBER、VARCHAR2 和DATE 等。
(3)表中字段的数据类型长度大小。
(4)表中每个字段的完整性约束条件,如PRIMARY KEY、UNIQUE 以及NOT NULL约束等。
2. 数据表的存储位置
在Oracle 数据库中,需要将表放在表空间(TABLESPACE)中进行管理,在定义表和表空间时需要注意以下3 点。
(1)设计数据表时,应该设计存放数据表的表空间,不要将表随意分散地创建到不同的表空间中去,这样对以后数据库的管理和维护将非常不利。
(2)如果将表创建在特定的表空间上,用户必须在表空间中具有相应的系统权限。
(3)为表指定表空间时,好不要使用Oracle 的系统表空间SYSTEM;否则会影响数据库性能。
根据表3-1 中的内容,为大家介绍几个常见的与数据表有关的术语。
● 表结构。组成表的各列的名称及其数据类型,统称为表结构。
● 记录。每个表包含多个数据,它们是表的“值”,表中的一行称为一个记录。因此,表示记录的有限集合。
● 字段。每个记录由若干个数据项构成,将构成记录的每个数据项称为字段或者字段(列)。例如,表3-1 包含7 个字段,由3 条记录构成。
● 空值。空值通常表示未知、不可用或将在以后添加的数据,如果一个列允许为空值,则向表中输入记录值时可不为该列给出具体值;而一个列如果不允许为空值,则在输入时必须给出具体值。
● 关键字。如果表中记录的某一字段或字段组合能标识记录,则称该字段或字段组合为候选关键字。如果一个表有多个候选关键字,则选择其中一个为主关键字,简称主键。
当一个表仅有的一个候选关键字时,该候选关键字就是主关键字。
提示
表的关键字不允许为空值,空值不能与数值数据0 或者字符类型的空字符混为一谈。任意两个空值都不相等。
2. 表的特点
在Oracle 数据库中,数据表通常有以下特点。
● 表通常代表一类实体。表是将实体关系模型映射为二维表格的一种实现方式,在同一个数据库中,每一个表具有的名称。
● 表由行和列组成。二维表格是由横向的行和纵向的列组成。每一行表示一条完整的记录,对应于一个完整的数据实体。每一列表示每个实体对应的属性,列存储了多个实体对象的相同属性的值。
● 在同一个表中每一行的值具有性。另外,列名在同一个表中也具有性。
● 行和列具有无序性。在同一个表中,行的顺序可以任意排列,通常按照数据插入的先后顺序存储。在使用过程中,经常对表中的行使用索引进行排序,或者在检索时使用排序语句。另外,列的顺序也可以任意排列,列的先后顺序对于数据的存储没有实质影响。
3.1.2 数据表的创建规则
在Oracle 中表的创建并不难。但是,作为一个合格的数据管理者或者开发者,在创建数据表之前首先必须要确定当前项目需要创建哪些表、表中要包含哪些列以及这些列所要使用的数据类型等。这就是表的创建规则,是需要在表创建之前确定的。下面罗列了创建数据表时需要考虑的几个方面。
1. 数据表的设计依据
在设计表的时候,首先要根据系统需求提取所需要的表以及每个表所包含的字段;然后根据数据库的特性,对表的结构进行分析设计。表的设计通常要遵循以下几点。
(1)表的类型,如堆表、临时表或者索引等。
(2)表中每个字段的数据类型,如NUMBER、VARCHAR2 和DATE 等。
(3)表中字段的数据类型长度大小。
(4)表中每个字段的完整性约束条件,如PRIMARY KEY、UNIQUE 以及NOT NULL约束等。
2. 数据表的存储位置
在Oracle 数据库中,需要将表放在表空间(TABLESPACE)中进行管理,在定义表和表空间时需要注意以下3 点。
(1)设计数据表时,应该设计存放数据表的表空间,不要将表随意分散地创建到不同的表空间中去,这样对以后数据库的管理和维护将非常不利。
(2)如果将表创建在特定的表空间上,用户必须在表空间中具有相应的系统权限。
(3)为表指定表空间时,好不要使用Oracle 的系统表空间SYSTEM;否则会影响数据库性能。
评论
还没有评论。