![]()
作者简介 靳智良,知名互联网社区架构师,一个拥有5年软件工程经验和深厚理论基础的软件工程专家,善于解剖和分析问题,使用生动形象的比喻,能将复杂的、难于理解的问题与知识简单化讲解。致力于研究、优化Web 2.0系统架构技术,对LAMP体系架构有着丰富的经验,挖掘LAMP架构的性能潜力,探索新型高效能的Web 2.0站点系统支撑平台以及系统集群。 冯海燕,具有多年.NET项目开发经验,深入掌握.NET框架技术,熟练开发ASP.NET与WinForm项目,精通C#、ASP 、C++、VB语言,熟练使用MTS、COM+、Web Service分布式架构。 目录 章 关系数据库与Oracle 12c 1.1 数据库的概念\t2 1.1.1 数据库概述\t2 1.1.2 数据库模型\t2 1.2 了解关系型数据库\t3 1.2.1 数据库的组成\t3 1.2.2 常见术语\t4 1.2.3 完整性规则\t5 1.3 范式理论和E-R模型\t5 1.3.1 范式理论\t6 1.3.2 E-R模型\t7 1.3.3 实践案例:E-R模型转换为关系模型\t8 1.4 了解Oracle 12c\t9 1.4.1 发展历史\t9 1.4.2 数据库版本\t10 1.4.3 新特性\t12 1.5 实践案例:安装Oracle 12c数据库管理系统\t14 1.6 实践案例:登录Oracle数据库\t18 1.7 实践案例:Oracle用户解锁\t20 1.8 Oracle 12c的体系结构\t21 1.8.1 内存结构\t21 1.8.2 进程结构\t22 1.8.3 物理结构\t22 1.9 练习题\t23 第2章 Oracle的基本操作 2.1 Web管理工具——OEM\t26 2.1.1 登录OEM\t26 2.1.2 使用OEM\t27 2.2 命令行工具——SQL Plus\t30 2.2.1 SQL Plus简介\t30 2.2.2 连接Oracle\t30 2.2.3 断开连接\t32 2.2.4 查看表结构\t32 2.2.5 编辑缓存区内容\t33 2.2.6 保存缓存区内容\t35 2.2.7 使用变量\t36 2.2.8 使用提示参数\t37 2.3 图形工具——SQL Developer\t38 2.3.1 打开SQL Developer\t38 2.3.2 连接Oracle\t38 2.3.3 执行存储过程\t40 2.3.4 导出数据\t42 2.4 网络配置助手\t44 2.4.1 配置监听程序\t44 2.4.2 配置命名方法\t46 2.4.3 配置本地NET服务名\t47 2.5 网络管理器\t49 2.6 数据库管理助手\t51 2.7 练习题\t55 第3章 操作Oracle数据表 3.1 Oracle数据表\t58 3.1.1 数据表概述\t58 3.1.2 数据表的创建规则\t59 3.1.3 Oracle中表的类型\t60 3.2 Oracle表列的数据类型\t61 3.3 创建表\t63 3.3.1 创建表的语句\t63 3.3.2 指定表空间\t64 3.3.3 指定存储参数\t64 3.4 实践案例:使用设计器创建表\t65 3.5 修改表属性\t67 3.5.1 增加列\t67 3.5.2 删除列\t67 3.5.3 更新列\t68 3.5.4 更改存储表空间\t70 3.5.5 更改存储参数\t70 3.6 重命名表\t71 3.7 删除表定义\t71 3.8 分析表\t72 3.8.1 验证表的存储情况\t72 3.8.2 查看表的统计信息\t73 3.8.3 查找表中的连接记录和迁移记录\t74 3.8.4 dbms_stats表\t76 3.8.5 dbms_stats与analyze对比\t80 3.9 实践案例:创建导游信息表\t80 3.10 练习题\t81 第4章 维护表的完整性 4.1 数据完整性简介\t84 4.2 主键约束\t85 4.2.1 主键约束简介\t85 4.2.2 创建表时定义主键约束\t85 4.2.3 为现有表添加主键约束\t86 4.2.4 删除主键约束\t86 4.2.5 在设计器中设置主键约束\t86 4.3 唯一约束\t87 4.3.1 创建表时定义唯一约束\t87 4.3.2 为现有表添加唯一约束\t87 4.3.3 删除唯一约束\t88 4.3.4 在设计器中设置唯一约束\t88 4.4 非空约束\t89 4.4.1 创建表时定义非空约束\t89 4.4.2 为现有表添加非空约束\t89 4.4.3 删除非空约束\t90 4.4.4 使用设计器设置非空约束\t91 4.5 外键约束\t91 4.5.1 外键约束简介\t92 4.5.2 创建表时定义外键约束\t92 4.5.3 对现有表添加外键约束\t93 4.5.4 外键的引用类型\t93 4.5.5 删除外键约束\t94 4.5.6 使用设计器设置外键约束\t94 4.6 检查约束\t95 4.6.1 使用SQL语句添加检查约束\t95 4.6.2 使用设计器设置检查约束\t96 4.7 操作约束\t97 4.7.1 查询约束信息\t97 4.7.2 禁止和激活约束\t98 4.7.3 约束的状态\t101 4.7.4 延迟约束\t102 4.8 实践案例:设计电器信息管理表\t102 4.9 练习题\t105 第5章 SELECT简单查询 5.1 SQL语言简介\t108 5.1.1 特点\t108 5.1.2 分类\t108 5.1.3 语句编写的规则\t109 5.2 SELECT语句的语法格式\t109 5.3 简单查询\t110 5.3.1 查询所有列\t110 5.3.2 查询指定列\t111 5.3.3 使用别名\t111 5.3.4 查询不重复数据\t112 5.3.5 查询计算列\t113 5.4 按条件查询\t114 5.4.1 比较条件\t114 5.4.2 范围条件\t115 5.4.3 逻辑条件\t116 5.4.4 模糊条件\t117 5.4.5 列表条件\t118 5.4.6 实践案例:查询NULL值\t119 5.5 结果集的规范化\t120 5.5.1 排序\t120 5.5.2 分组\t121 5.5.3 筛选\t122 5.6 实践案例:分页查询会员信息\t123 5.7 实践案例:员工信息查询\t125 5.8 练习题\t126 第6章 修改表数据 6.1 插入数据\t130 6.1.1 INSERT语句的语法格式\t130 6.1.2 插入单行数据\t130 6.1.3 插入多行数据\t132 6.2 更新数据\t132 6.2.1 UPDATE语句的语法格式\t133 6.2.2 更新单列\t133 6.2.3 更新多列\t134 6.2.4 基于他表更新列\t134 6.3 删除数据\t135 6.3.1 DELETE语句的语法格式\t135 6.3.2 删除数据\t136 6.3.3 清空表\t136 6.4 合并数据\t137 6.4.1 MERGE语句的语法格式\t137 6.4.2 执行更新操作\t138 6.4.3 执行插入操作\t138 6.4.4 限制条件的更新和插入\t139 6.4.5 使用常量表达式\t140 6.4.6 执行删除操作\t140 6.5 练习题\t141 第7章 不错查询 7.1 子查询\t144 7.1.1 子查询的使用规则\t144 7.1.2 单行子查询\t144 7.1.3 实践案例:单行子查询常见错误解析\t147 7.1.4 使用IN操作符\t148 7.1.5 使用ANY操作符\t149 7.1.6 使用ALL操作符\t150 7.1.7 使用EXISTS操作符\t151 7.1.8 使用UPDATE语句\t152 7.1.9 使用DELETE语句\t152 7.1.10 实践案例:多层嵌套子查询\t153 7.2 多表查询的语法格式\t153 7.2.1 消除笛卡儿积\t154 7.2.2 基本连接\t154 7.3 内连接\t156 7.3.1 等值内连接\t156 7.3.2 非等值内连接\t157 7.3.3 自然连接\t159 7.4 外连接\t160 7.4.1 左外连接\t160 7.4.2 右外连接\t161 7.4.3 完全连接\t162 7.5 联合查询\t163 7.5.1 UNION ALL查询\t163 7.5.2 UNION查询\t164 7.5.3 MINUS查询\t164 7.5.4 INTERSECT查询\t165 7.6 交叉连接\t166 7.7 实践案例:查询超市商品信息\t166 7.8 练习题\t168 第8章 Oracle表空间的管理 8.1 Oracle表空间简介\t172 8.1.1 了解表空间\t172 8.1.2 表空间的类型\t172 8.1.3 表空间的状态\t173 8.2 实践案例:创建一个表空间\t173 8.3 实践案例:查询表空间的信息\t176 8.4 修改表空间的属性\t178 8.4.1 修改表空间的名称\t179 8.4.2 修改表空间的大小\t179 8.4.3 切换只读和读写状态\t180 8.4.4 切换脱机和联机状态\t180 8.5 操作表空间\t182 8.5.1 本地化管理\t182 8.5.2 增加数据文件\t183 8.5.3 移动数据文件\t183 8.5.4 删除表空间\t184 8.6 实践案例:修改默认表空间\t184 8.7 还原表空间\t186 8.7.1 创建还原表空间\t186 8.7.2 管理还原表空间\t186 8.7.3 更改还原表空间的方式\t188 8.8 临时表空间\t189 8.8.1 了解临时表空间\t189 8.8.2 创建临时表空间\t190 8.8.3 修改临时表空间\t190 8.8.4 临时表空间组\t191 8.9 实践案例:创建购物系统的表空间\t193 8.10 练习题\t195 第9章 PL/SQL编程基础 9.1 PL/SQL概述\t198 9.1.1 PL/SQL语言的特点\t198 9.1.2 PL/SQL代码的编写规则\t198 9.2 PL/SQL的编程结构\t199 9.2.1 PL/SQL程序块\t199 9.2.2 数据类型\t200 9.2.3 PL/SQL程序的注释\t200 9.3 变量\t201 9.3.1 标识符的定义规则\t201 9.3.2 声明变量\t202 9.3.3 变量赋值\t203 9.3.4 %TYPE操作符\t203 9.3.5 %ROWTYPE操作符\t204 9.4 常量\t205 9.5 字符集\t206 9.5.1 字符集的概念\t206 9.5.2 查看字符集\t207 9.6 运算符\t208 9.6.1 连接运算符\t208 9.6.2 算术运算符\t209 9.6.3 比较运算符\t209 9.6.4 逻辑运算符\t210 9.7 流程控制语句\t211 9.7.1 分支语句\t212 9.7.2 循环语句\t214 9.7.3 跳转语句\t216 9.7.4 语句嵌套\t219 9.8 实践案例:输出九九乘法表\t220 9.9 异常处理\t220 9.9.1 异常的语法结构\t220 9.9.2 预定义异常\t221 9.9.3 非预定义异常\t223 9.9.4 自定义异常\t223 9.10 练习题\t225 0章 PL/SQL应用编程 10.1 系统函数\t229 10.1.1 字符函数\t229 10.1.2 数学函数\t231 10.1.3 聚合函数\t232 10.1.4 日期函数\t233 10.1.5 转换函数\t235 10.2 自定义函数\t236 10.2.1 创建函数语法\t236 10.2.2 调用函数\t237 10.2.3 查看函数源代码\t238 10.2.4 删除函数\t239 10.2.5 实践案例:使用SQL Developer工具操作函数\t239 10.3 实践案例:实现MD5加密\t240 10.4 使用集合\t241 10.4.1 嵌套表\t241 10.4.2 可变数组\t243 10.4.3 索引表\t246 10.4.4 集合方法\t247 10.4.5 实践案例:使用PL/SQL记录表 248 10.5 使用游标\t249 10.5.1 游标简介\t249 10.5.2 声明游标\t249 10.5.3 打开游标\t250 10.5.4 检索游标\t251 10.5.5 关闭游标\t251 10.5.6 实践案例:LOOP循环游标\t252 10.5.7 实践案例:FOR循环游标\t252 10.5.8 游标属性\t253 10.5.9 游标变量\t255 10.6 实践案例:使用游标更新和删除数据\t257 10.7 使用事务\t259 10.7.1 事务概述\t259 10.7.2 事务控制\t260 10.7.3 使用事务\t261 10.7.4 实践案例:更新账户余额\t262 10.8 使用锁\t263 10.8.1 锁的分类\t263 10.8.2 锁的查询语句\t264 10.9 练习题\t265 1章 管理数据库对象 11.1 包\t268 11.1.1 包简介\t268 11.1.2 系统预定义包\t268 11.1.3 创建包声明\t271 11.1.4 创建包主体\t272 11.1.5 使用包\t274 11.1.6 修改和删除包\t275 11.2 序列\t275 11.2.1 创建序列\t275 11.2.2 使用序列\t276 11.2.3 修改序列\t278 11.2.4 删除序列\t278 11.2.5 自动序列\t279 11.3 同义词\t280 11.3.1 同义词简介\t280 11.3.2 创建同义词\t281 11.3.3 删除同义词\t282 11.4 索引\t282 11.4.1 索引简介\t282 11.4.2 创建索引\t286 11.4.3 创建B树索引\t287 11.4.4 创建位图索引\t288 11.4.5 创建函数索引\t289 11.4.6 重命名索引\t290 11.4.7 合并索引\t290 11.4.8 重建索引\t291 11.4.9 监视索引\t291 11.4.10 删除索引\t292 11.5 视图\t292 11.5.1 视图简介\t293 11.5.2 创建视图\t293 11.5.3 查询视图\t295 11.5.4 操作视图\t296 11.5.5 删除视图\t298 11.5.6 实践案例:使用SQL Developer操作视图\t299 11.5.7 视图的WITH子句\t299 11.6 Oracle伪列\t301 11.6.1 ROWNUM伪列\t301 11.6.2 ROWID伪列\t302 11.6.3 实践案例:删除重复数据\t303 11.7 实践案例:获取分页数据\t304 11.8 练习题\t305 2章 存储过程和触发器 12.1 创建存储过程\t309 12.2 实践案例:创建一个更新密码的存储过程\t309 12.3 管理存储过程\t310 12.3.1 查看存储过程信息\t310 12.3.2 实践案例:调用存储过程\t311 12.3.3 修改存储过程\t311 12.3.4 删除存储过程\t312 12.4 使用参数\t313 12.4.1 输入参数\t313 12.4.2 输出参数\t315 12.4.3 同时包含输入和输出参数\t315 12.4.4 参数默认值 \t316 12.5 触发器\t318 12.5.1 触发器简介\t318 12.5.2 触发器类型\t318 12.6 创建触发器\t319 12.6.1 创建触发器语法\t319 12.6.2 DML触发器\t320 12.6.3 DDL触发器\t324 12.6.4 INSTEAD OF触发器\t325 12.7 实践案例:跟踪数据库和用户状态\t327 12.8 管理触发器\t330 12.8.1 查看触发器信息 \t330 12.8.2 改变触发器的状态\t330 12.8.3 删除触发器\t331 12.9 实践案例:实现主键自动增长\t331 12.10 练习题\t332 3章 Oracle数据库的安全性 13.1 用户和模式\t336 13.1.1 用户\t336 13.1.2 模式\t337 13.2 创建用户\t337 13.3 管理用户\t338 13.3.1 查看用户\t339 13.3.2 修改用户\t339 13.3.3 删除用户\t341 13.3.4 管理用户会话\t341 13.4 实践案例:使用SQL Developer管理用户\t343 13.5 管理权限\t345 13.5.1 系统权限\t345 13.5.2 对象权限\t346 13.6 角色\t348 13.6.1 角色概述\t348 13.6.2 系统预定义角色\t349 13.6.3 创建角色\t350 13.7 管理角色\t350 13.7.1 角色授权\t350 13.7.2 为用户授予角色\t351 13.7.3 修改角色密码\t351 13.7.4 取消角色权限\t352 13.7.5 禁用与启用角色\t352 13.7.6 查看角色\t352 13.7.7 删除角色\t353 13.8 配置文件\t353 13.8.1 创建配置文件\t353 13.8.2 查看配置文件\t355 13.8.3 修改配置文件\t355 13.8.4 删除配置文件\t355 13.9 练习题\t355 4章 Oracle数据库文件 14.1 控制文件\t358 14.1.1 控件文件简介\t358 14.1.2 创建控制文件\t359 14.1.3 查看控制文件信息\t362 14.1.4 移动和删除控制文件\t363 14.1.5 备份控制文件\t364 14.1.6 恢复控制文件\t365 14.2 实践案例:多路复用控制文件策略\t365 14.3 重做日志文件\t367 14.3.1 重做日志文件简介\t367 14.3.2 重做记录和回滚段\t367 14.3.3 查看重做日志文件\t368 14.3.4 创建重做日志文件组\t369 14.3.5 切换重做日志组\t370 14.3.6 实践案例:管理重做日志组成员\t371 14.3.7 设置重做日志模式\t372 14.3.8 删除重做日志组\t374 14.4 数据文件\t374 14.4.1 数据文件简介\t374 14.4.2 创建数据文件\t375 14.4.3 查看数据文件信息\t376 14.4.4 修改数据文件大小和状态\t377 14.4.5 修改数据文件的位置\t378 14.4.6 删除数据文件\t379 14.5 实践案例:操作数据文件\t379 14.6 练习题\t381 5章 医院预约挂号系统数据库的设计 15.1 系统概述\t384 15.1.1 开发背景\t384 15.1.2 可行性分析\t384 15.1.3 功能性分析\t385 15.2 数据库E-R图的设计\t386 15.3 数据库的设计\t386 15.3.1 创建表空间和用户\t387 15.3.2 创建数据表\t387 15.3.3 创建约束\t391 15.3.4 创建视图\t391 15.3.5 创建序列\t392 15.3.6 创建存储过程\t393 15.4 业务测试\t395 15.4.1 注册就诊信息\t396 15.4.2 注册医生数据\t397 15.4.3 更改密码\t398 15.4.4 更新患者姓名\t398 15.4.5 修改密码\t399 15.4.6 更改医生信息\t400 15.4.7 查询预约信息\t401 练习题答案 内容推荐 本书针对Oracle Database 12c编写,以Oracle数据库的常用知识点作为主要的介绍对象,并对生僻的知识采取简略甚至省略的态度,目的就是为了让读者轻松地叩开Oracle数据库的大门,为以后更深入的学习打下良好的基础。 |