核心技术分册目录 第1篇 基础篇 第1章 Oracle 11g概述 2 视频讲解:1小时7分钟 1.1 数据库的产生 3 1.2 数据库基本概念 4 1.2.1 数据、数据库、数据库管理系统和数据库系统 4 1.2.2 数据库的标准语言SQL 7 1.3 Oracle简介 7 1.3.1 Oracle公司介绍 7 1.3.2 Oracle体系介绍 9 1.4 Oracle数据库环境 10 1.4.1 Oracle数据库版本简介 10 1.4.2 Oracle 11g的下载与安装 11 1.4.3 Oracle 11g的卸载 21 1.5 小结 26 第2章 Oracle管理工具 27 视频讲解:1小时2分钟 2.1 SQL*Plus工具 28 2.1.1 启动和连接SQL*Plus 28 2.1.2 使用SQL*Plus查询数据库 29 2.1.3 创建SQL*Plus快捷方式 32 2.1.4 退出SQL*Plus 32 2.2 SQL Developer工具 33 2.2.1 启动SQL Developer 33 2.2.2 创建数据库连接 35 2.2.3 使用SQL Developer查询数据库 38 2.3 Oracle企业管理器(OEM) 38 2.4 数据库配置助手(DBCA) 40 2.5 实战 48 2.5.1 通过SQL*Plus工具查询员工信息表(emp表)的信息 48 2.5.2 通过SQL*Plus工具查询工资等级表(salgarde表)的信息 48 2.5.3 通过SQL Developer工具查询员工部门表(dept表)的信息 49 2.5.4 通过SQL Developer工具查询工资等级表(salgarde表)的信息 49 2.6 小结 49 第3章 SQL*Plus命令 50 视频讲解:1小时53分钟 3.1 SQL*Plus与数据库的交互 51 3.2 设置SQL*Plus的运行环境 52 3.2.1 SET命令简介 53 3.2.2 使用SET命令设置运行环境 54 3.3 常用的SQL*Plus命令 58 3.3.1 HELP命令 58 3.3.2 DESCRIBE命令 59 3.3.3 CONN命令 61 3.3.4 加入注释 62 3.4 格式化SQL*Plus输出 63 3.4.1 格式化列 64 3.4.2 定义页与报告的标题 67 3.5 数据字典 69 3.5.1 Oracle数据���典简介 69 3.5.2 Oracle常用数据字典 70 3.6 实战 71 3.6.1 使用SET PAGESIZE命令 71 3.6.2 设置SQL*Plus的运行环境 72 3.6.3 修改空行数 72 3.6.4 使用FORMAT选项格式化字段 72 3.6.5 使用FORMAT选项格式化字段宽度 72 3.7 小结 72 第4章 数据表操作 73 视频讲解:1小时15分钟 4.1 数据表概述 74 4.2 表与表结构操作 75 4.2.1 Oracle常用数据类型 75 4.2.2 表和表结构 76 4.2.3 表结构设计 76 4.3 OEM方式操作表 78 4.3.1 创建表 78 4.3.2 修改表 82 4.3.3 删除表 82 4.4 使用SQL Developer操作表 83 4.4.1 创建表 83 4.4.2 修改表 84 4.4.3 删除表 85 4.5 在SQL*Plus上操作表 85 4.5.1 创建表 85 4.5.2 修改表 88 4.5.3 删除表 92 4.6 实战 93 4.6.1 创建课程表(KCB) 93 4.6.2 创建电子商品信息表(goods) 93 4.6.3 为表中增加字段 93 4.6.4 修改电子商品信息表(goods)的表名 93 4.6.5 删除表中字段 93 4.7 小结 93 第5章 SQL查询基础 94 视频讲解:1小时5分钟 5.1 SQL简介 95 5.1.1 SQL的分类 95 5.1.2 SQL的编写规则 96 5.2 SELECT语句简介 99 5.3 查询所有列 100 5.3.1 查询单张表中所有列 100 5.3.2 查询多张表中所有列 102 5.4 查询特定列 102 5.4.1 查询特定列 103 5.4.2 伪列 103 5.5 消除重复行 104 5.5.1 查询结果中包含重复行 105 5.5.2 查询结果中消除重复行 105 5.6 带有表达式的SELECT子句 106 5.7 为列指定别名 107 5.7.1 不使用列别名 107 5.7.2 使用列别名 108 5.8 处理NULL 110 5.8.1 不处理NULL 110 5.8.2 使用NVL函数处理NULL 112 5.8.3 使用NVL2函数处理NULL 113 5.9 连接字符串 113 5.9.1 使用“||”操作符连接字符串 114 5.9.2 使用CONCAT函数连接字符串 114 5.10 实战 115 5.10.1 查询新建表的所有信息 115 5.10.2 发年终奖啦! 115 5.10.3 显示student表中的平均成绩 115 5.10.4 使用“||”操作符连接字符串 115 5.10.5 使用CONCAT函数连接字符串 115 5.11 小结 116 第6章 SQL查询进阶 117 视频讲解:52分钟 6.1 筛选查询 118 6.1.1 比较筛选 118 6.1.2 逻辑查询(AND、OR和NOT) 119 6.1.3 模糊查询(LIKE、NOT LIKE) 120 6.1.4 列表范围查找(IN、NOT IN) 122 6.1.5 范围查询(BETWEEN…AND) 123 6.1.6 判断内容是否为NULL(IS NULL、IS NOT NULL) 124 6.2 分组查询 125 6.2.1 使用GROUP BY进行单字段分组 125 6.2.2 使用GROUP BY进行多字段分组 127 6.2.3 使用HAVING子句限制分组结果 128 6.3 排序查询 129 6.3.1 单列排序 129 6.3.2 多列排序 130 6.4 实战 131 6.4.1 查询符合条件的iPhone 7手机是哪一款 131 6.4.2 查询符合条件的员工信息 131 6.4.3 查询工资在(1000~3000元)之外的员工 131 6.4.4 对工资等级进行分组 132 6.4.5 按照年级、成绩对学生进行排序 132 6.5 小结 132 第7章 多表关联查询 133 视频讲解:34分钟 7.1 表的别名 134 7.2 内连接 135 7.3 外连接 136 7.3.1 左外连接 137 7.3.2 右外连接 138 7.3.3 完全外连接 139 7.4 自然连接 140 7.5 自连接 140 7.6 交叉连接 143 7.7 实战 143 7.7.1 查询王红同学的物理成绩 143 7.7.2 查询数学成绩及格的学生信息 143 7.7.3 查询物理成绩及格的学生信息 144 7.7.4 查询英语成绩大于80分的学生信息 144 7.7.5 查询奖金比基本工资多的员工信息 144 7.8 小结 144 第8章 子查询及常用系统函数 145 视频讲解:53分钟 8.1 初识子查询 146 8.2 单行子查询 147 8.3 多行子查询 148 8.3.1 使用IN运算符 148 8.3.2 使用ANY运算符 149 8.3.3 使用ALL运算符 150 8.4 Oracle常用系统函数 150 8.4.1 字符类函数 151 8.4.2 数字类函数 152 8.4.3 日期和时间类函数 154 8.4.4 转换类函数 155 8.4.5 聚合类函数 157 8.5 实战 157 8.5.1 查询数学成绩不及格的学生信息 157 8.5.2 查询各科成绩都在平均分以上的学生成绩信息 157 8.5.3 查询出每个部门经理的工资 158 8.5.4 查询出价格比iPhone 7手机价格低的产品 158 8.5.5 显示所有员工在入职三个月之后的日期 158 8.6 小结 158 第9章 操作数据库 159 视频讲解:23分钟 9.1 插入数据(INSERT语句) 160 9.1.1 单条插入数据 160 9.1.2 批量插入数据 162 9.2 更新数据(UPDATE语句) 164 9.2.1 更新单列数据 164 9.2.2 更新日期列数据 165 9.2.3 使用子查询更新数据 166 9.3 删除数据(DELETE语句和TRUNCATE语句) 167 9.3.1 DELETE语句 167 9.3.2 TRUNCATE语句 168 9.4 实战 168 9.4.1 插入数据 168 9.4.2 批量插入数据 169 9.4.3 更新员工的工资数据 169 9.4.4 修改员工的入职时间 169 9.4.5 删除在平均值之下的数据 169 9.5 小结 169 第10章 PL/SQL语言编程 170 视频讲解:1小时30分钟 10.1 PL/SQL简介 171 10.1.1 PL/SQL块结构 171 10.1.2 代码注释 172 10.1.3 标识符 173 10.1.4 分界符 174 10.2 数据类型 175 10.2.1 基本数据类型 175 10.2.2 数值型 176 10.2.3 字符型 177 10.2.4 日期型 179 10.2.5 布尔型 180 10.3 变量的声明与赋值 181 10.3.1 定义一般变量 181 10.3.2 使用%TYPE声明变量类型 183 10.3.3 使用RECORD声明变量类型 184 10.3.4 使用%ROWTYPE声明变量类型 186 10.4 流程控制语句 187 10.4.1 选择语句 187 10.4.2 循环语句 191 10.5 实战 195 10.5.1 输出《静夜思》 195 10.5.2 输出当前日期和当月的*后**的日期 196 10.5.3 根据员工编号查询工资 196 10.5.4 公司发福利 196 10.5.5 输出九九乘法表 197 10.6 小结 197 第2篇 提高篇 第11章 游标 200 视频讲解:27分钟 11.1 游标简介 201 11.2 隐式游标 202 11.3 显式游标 203 11.3.1 声明游标 203 11.3.2 打开游标 204 11.3.3 读取游标 205 11.3.4 关闭游标 205 11.3.5 显式游标的属性 207 11.4 游标变量 207 11.4.1 声明游标变量 208 11.4.2 打开游标变量 209 11.4.3 关闭游标变量 209 11.5 通过FOR语句遍历游标 210 11.5.1 隐式游标中使用FOR语句 210 11.5.2 显式游标中使用FOR语句 211 11.6 实战 212 11.6.1 查询出员工编号为7788的员工名称 212 11.6.2 获得职位是编辑的员工信息 212 11.6.3 查询商品价格低于2000元的商品信息 212 11.6.4 查询SALES部门的员工信息 212 11.6.5 查询电视机的价格 212 11.7 小结 212 第12章 过程与函数 213 视频讲解:36分钟 12.1 存储过程 214 12.1.1 创建存储过程 214 12.1.2 执行存储过程 215 12.1.3 存储过程的参数 216 12.1.4 删除存储过程 220 12.2 函数 221 12.2.1 创建函数 221 12.2.2 调用函数 222 12.2.3 删除函数 223 12.3 实战 223 12.3.1 获取3号学生的姓名和平均成绩 223 12.3.2 创建一个存储过程,实现向学生成绩表插入一条数据 223 12.3.3 查找学生的3科成绩 224 12.3.4 创建一个存储过程,将定义的IN参数插入dept表中 224 12.3.5 通过函数查询学生的数学成绩 224 12.4 小结 224 第13章 触发器 225 视频讲解:38分钟 13.1 触发器简介 226 13.2 语句级触发器 227 13.3 行级触发器 230 13.4 替换触发器 232 13.5 删除触发器 235 13.6 实战 235 13.6.1 针对员工信息表(emp表)编写一个语句级触发器 235 13.6.2 针对学生信息表(student表)编写一个语句级触发器 235 13.6.3 针对员工信息表(emp表)创建一个行级触发器 235 13.6.4 编写一个视图修改数据的触发器 236 13.6.5 更新视图view_emp_dept的信息 236 13.7 小结 236 第14章 数据表约束 237 视频讲解:1小时51分钟 14.1 数据表约束简介 238 14.2 非空约束 238 14.2.1 设置非空约束 238 14.2.2 修改非空约束 239 14.2.3 删除非空约束 239 14.3 **性约束 240 14.3.1 设置**性约束 240 14.3.2 删除**性约束 241 14.4 主键约束 241 14.4.1 创建表的同时设置主键约束 242 14.4.2 创建表之后添加主键约束 242 14.4.3 删除主键约束 243 14.5 外键约束 244 14.5.1 设置外键约束 244 14.5.2 删除具有外键约束的表 246 14.5.3 删除外键约束 246 14.6 禁用和激活约束 247 14.6.1 在定义约束时禁用 247 14.6.2 禁用已经存在的约束 248 14.6.3 激活约束 249 14.7 删除约束 249 14.8 实战 250 14.8.1 某网站设计用户登录信息表 250 14.8.2 设置**性约束 250 14.8.3 创建教师个人信息表 250 14.8.4 创建公司资产管理表 250 14.8.5 创建学生的成绩信息表 250 14.9 小结 250 第15章 索引 251 视频讲解:48分钟 15.1 索引概述 252 15.2 创建索引 253 15.2.1 建立B树索引 253 15.2.2 建立位图索引 254 15.2.3 建立反向键索引 255 15.2.4 基于函数的索引 256 15.3 合并和重建索引 258 15.4 删除索引 259 15.5 显示索引信息 260 15.5.1 显示表的所有索引 260 15.5.2 显示索引列 261 15.5.3 显示索引段位置及其大小 261 15.5.4 显示函数索引 262 15.6 实战 262 15.6.1 创建B树索引 262 15.6.2 创建位图索引 262 15.6.3 创建反向键索引 262 15.6.4 设置函数索引 262 15.6.5 对索引stu_sco_index执行合并操作 263 15.7 小结 263 第16章 视图 264 视频讲解:29分钟 16.1 创建视图 265 16.1.1 简单视图 265 16.1.2 建立只读视图 266 16.1.3 复杂视图 267 16.1.4 连接视图 268 16.2 管理视图 269 16.2.1 查看视图定义 269 16.2.2 修改视图定义 270 16.2.3 重新编译视图 270 16.2.4 删除视图 271 16.3 实战 271 16.3.1 创建一张查询出1981年雇佣的全部员工信息的视图 271 16.3.2 创建视图,查询出各科成绩都在平均分以上的学生成绩信息 271 16.3.3 创建视图,查询经理所在的部门名称 271 16.3.4 创建视图,查询出王红同学的物理成绩 272 16.3.5 修改视图stu_sco_union 272 16.4 小结 272 第17章 序列 273 视频讲解:4分钟 17.1 创建序列 274 17.2 管理序列 275 17.3 实战 276 17.3.1 创建一个序列myseq 276 17.3.2 创建一个序列my_seq 276 17.3.3 修改序列myseq 277 17.3.4 修改序列my_seq 277 17.4 小结 277 第18章 管理表空间和数据文件 278 视频讲解:1小时5分钟 18.1 表空间与数据文件的关系 279 18.2 Oracle 11g的默认表空间 280 18.2.1 SYSTEM表空间 280 18.2.2 SYSAUX表空间 281 18.3 创建表空间 282 18.3.1 界面方式创建表空间 282 18.3.2 命令方式创建表空间 284 18.4 维护表空间与数据文件 288 18.4.1 设置默认表空间 288 18.4.2 更改表空间的状态 288 18.4.3 重命名表空间 289 18.4.4 删除表空间 289 18.4.5 维护表空间中的数据文件 290 18.5 实战 292 18.5.1 创建一个扩展大小为自动管理的表空间 292 18.5.2 创建表空间tbs_mr_1 292 18.5.3 创建表空间tbs_mr_2 292 18.5.4 删除表空间tbs_test_2 292 18.5.5 检验DATAFILE4.dbf文件是否为自动扩展 292 18.6 小结 292 第19章 事务 293 视频讲解:17分钟 19.1 事务的概述 294 19.1.1 事务的特性 294 19.1.2 事务的状态 295 19.2 操作事务 296 19.2.1 设置事务 296 19.2.2 提交事务(COMMIT语句) 298 19.2.3 回滚事务(ROLLBACK语句) 299 19.2.4 设置回退点 300 19.3 实战 302 19.3.1 提交事务 302 19.3.2 回滚事务 302 19.3.3 设置保存点 302 19.4 小结 302 第20章 数据导入与导出 303 视频讲解:6分钟 20.1 EXPDP和IMPDP概述 304 20.2 EXPDP导出数据 304 20.2.1 导出数据时准备 304 20.2.2 导出表 305 20.2.3 导出模式 306 20.2.4 导出表空间 307 20.2.5 导出全数据库 308 20.3 IMPDP导入数据 308 20.3.1 导入表 309 20.3.2 导入模式 309 20.3.3 导入表空间 309 20.3.4 导入全数据库 309 20.4 SQL Developer导入和导出数据 310 20.4.1 通过SQL Developer导出数据 310 20.4.2 通过SQL Developer导入数据 312 20.5 实战 313 20.6 小结 313 项目实战分册目录 第21章 Oracle经典范例应用 315 21.1 基础查询 315 21.1.1 查询多个列名 315 21.1.2 查询所有列 316 21.1.3 使用列别名 316 21.1.4 在列上加入计算 317 21.1.5 查询数字 317 21.2 通配符查询 318 21.2.1 利用_通配符进行查询 318 21.2.2 利用%通配符进行查询 318 21.2.3 利用[]通配符进行查询 319 21.2.4 利用[^]通配符进行查询 319 21.2.5 检索姓名以字母A开头的员工信息 320 21.2.6 复杂的模糊查询 320 21.3 限定查询 321 21.3.1 利用IN谓词限定范围 321 21.3.2 利用NOT IN限定范围 321 21.3.3 利用ALL谓词限定范围 322 21.3.4 利用ANY谓词限定范围 322 21.3.5 NOT与谓词进行组合条件的查询 323 21.3.6 查询时不显示重复记录 323 21.3.7 列出数据中的重复记录和记录条数 324 21.3.8 去除记录中指定字段的空值 324 21.3.9 获取记录中指定字段的空值 325 21.3.10 查询前5名数据 325 21.3.11 查询后5名数据 325 21.3.12 取出数据统计结果前3名数据 326 21.4 日期与时间查询 326 21.4.1 查询指定日期的数据 326 21.4.2 查询指定时间段的数据 327 21.4.3 按月查询数据 328 21.5 多条件查询 328 21.5.1 利用BETWEEN进行区间查询 328 21.5.2 利用OR进行查询 329 21.5.3 利用AND进行查询 329 21.5.4 同时利用OR、AND进行查询 330 21.6 分组及排序查询 330 21.6.1 在分组查询中使用ALL关键字 330 21.6.2 在分组查询中使用HAVING子句 331 21.6.3 在分组查询中使用ROLLUP 331 21.6.4 对统计结果进行排序 332 21.6.5 数据分组统计(单列) 332 21.6.6 按仓库分组统计图书库存(多列) 332 21.6.7 多表分组统计 333 21.6.8 使用COMPUTE 333 21.7 函数查询 334 21.7.1 利用聚合函数SUM对销售额进行汇总 334 21.7.2 利用聚合函数AVG求某班学生的平均年龄 334 21.7.3 利用聚合函数MIN求*小值 335 21.7.4 利用聚合函数MAX求*大值 335 21.7.5 利用聚合函数COUNT求日销售额大于某值的商品数 336 21.7.6 使用ROUND函数 336 21.7.7 使用SYSDATE函数 336 21.7.8 使用ADD_MONTHS函数 337 21.7.9 使用ASCII函数 337 21.7.10 使用SUBSTR函数 338 21.7.11 使用LTRIM、RTRIM和TRIM函数 338 21.7.12 使用LOWER、UPPER函数 338 21.7.13 使用LENGTH函数 339 21.8 多表查询 339 21.8.1 利用FROM子句进行多表查询 339 21.8.2 使用表的别名 340 21.8.3 合并多个结果集 341 21.9 子查询 341 21.9.1 由IN引入的子查询 341 21.9.2 EXISTS子查询实现两表交集 342 21.9.3 在SELECT子句中的子查询 343 21.9.4 在子查询中使用聚合函数 343 21.9.5 使用子查询更新数据 344 21.9.6 使用子查询删除数据 345 21.9.7 复杂的嵌套查询 345 21.9.8 嵌套查询在查询统计中的应用 346 21.9.9 使用UNION运算符 346 21.9.10 一对多联合查询 347 21.9.11 对联合查询后的结果进行排序 348 21.10 连接查询 348 21.10.1 简单内连接查询 348 21.10.2 复杂的内连接查询 349 21.10.3 自连接 349 21.10.4 LEFT JOIN查询 350 21.10.5 RIGHT JOIN查询 351 21.10.6 使用外连接进行多表联合查询 352 21.10.7 完全外连接 352 21.11 小结 353 第22章 Java Oracle实现企业人事管理系统 354 22.1 开发背景 354 22.2 系统分析 354 22.3 系统设计 355 22.3.1 系统目标 355 22.3.2 系统功能结构 355 22.3.3 系统预览 356 22.3.4 业务流程图 358 22.3.5 文件夹结构设计 359 22.4 数据库设计 359 22.4.1 数据库分析 359 22.4.2 数据库概念设计 359 22.4.3 数据库逻辑结构设计 360 22.5 主窗体设计 361 22.5.1 导航栏的设计 361 22.5.2 工具栏的设计 364 22.6 公共模块设计 366 22.6.1 编写Hibernate配置文件 366 22.6.2 编写Hibernate持久化类和映射文件 367 22.6.3 编写通过Hibernate操作持久化对象的常用方法 368 22.6.4 创建具有特殊效果的部门树对话框 369 22.6.5 创建通过部门树选取员工的面板和对话框 371 22.7 人事管理模块设计 372 22.7.1 人事管理模块功能概述 373 22.7.2 人事管理模块技术分析 374 22.7.3 人事管理模块的实现过程 374 22.8 待遇管理模块设计 380 22.8.1 待遇管理模块功能概述 380 22.8.2 待遇管理模块技术分析 381 22.8.3 待遇管理模块的实现过程 381 22.9 系统维护模块设计 386 22.9.1 系统维护模块功能概述 386 22.9.2 系统维护模块技术分析 388 22.9.3 系统维护模块实现过程 388 22.10 小结 392 第23章 VC Oracle实现超市进销存管理系统 393 23.1 开发背景 393 23.2 系统分析 393 23.3 系统设计 394 23.3.1 系统目标 394 23.3.2 系统功能结构 394 23.3.3 系统预览 395 23.3.4 业务流程图 395 23.3.5 数据库设计 396 23.4 公共模块设计 400 23.5 主窗体设计 402 23.6 商品信息模块设计 404 23.6.1 商品信息模块概述 404 23.6.2 商品信息模块技术分析 405 23.6.3 商品信息模块实现过程 406 23.7 供应商信息模块设计 411 23.7.1 供应商信息模块概述 411 23.7.2 供应商信息模块技术分析 411 23.7.3 供应商信息模块实现过程 413 23.8 销售查询模块设计 419 23.8.1 销售查询模块概述 419 23.8.2 销售查询模块技术分析 419 23.8.3 销售查询模块实现过程 420 23.9 日结查询模块设计 423 23.9.1 日结查询模块概述 423 23.9.2 日结查询模块技术分析 423 23.9.3 日结查询模块实现过程 424 23.10 前台销售模块设计 426 23.10.1 前台销售模块概述 426 23.10.2 前台销售模块技术分析 427 23.10.3 前台销售模块实现过程 428 23.11 小结 432 第24章 VC Oracle实现汽配管理系统 433 24.1 开发背景 433 24.2 系统分析 433 24.3 系统设计 434 24.3.1 系统功能结构 434 24.3.2 系统预览 434 24.3.3 汽配管理系统业务流程图 436 24.4 数据库设计 436 24.4.1 数据库概要说明 436 24.4.2 数据库逻辑设计 437 24.5 公共模块设计 439 24.5.1 数据库操作类RxADO的设计 439 24.5.2 特殊按钮类CBaseButton类的制作 443 24.5.3 扩展的组合框CBaseComboBox类 446 24.6 主窗体设计 448 24.6.1 主窗体模块概述 448 24.6.2 主窗体实现过程 448 24.7 系统登录模块设计 453 24.7.1 系统登录模块概述 453 24.7.2 系统登录模块逻辑分析 454 24.7.3 系统登录模块实现过程 454 24.8 基础信息查询模块设计 457 24.8.1 基础信息查询模块概述 457 24.8.2 基础信息查询模块实现过程 458 24.9 商品信息模块设计 460 24.9.1 商品信息模块概述 460 24.9.2 商品信息模块数据表分析 460 24.9.3 商品信息模块实现过程 461 24.10 日常业务处理模块设计 466 24.10.1 日常业务处理模块概述 466 24.10.2 日常业务处理模块实现过程 467 24.11 小结 480