第1篇 基础知识篇
第1章 Oracle 19c概述 2 视频讲解:8节,57分钟
1.1 数据库的产生 3
1.2 数据库基本概念 4
1.2.1 数据、数据库、数据库管理系统和数据库系统 4
1.2.2 数据库的标准语言——SQL 6
1.3 Oracle简介 7
1.3.1 Oracle公司介绍 7
1.3.2 Oracle体系介绍 8
1.4 Oracle数据库环境 9
1.4.1 Oracle数据库版本简介 9
1.4.2 Oracle 19c的下载与安装 10
1.4.3 Oracle 19c的卸载 16
本章知识思维导图 18
第2章 Oracle管理工具 19 视频讲解:9节,61分钟
2.1 SQL*Plus工具 20
2.1.1 启动SQL*Plus 20
2.1.2 使用SQL*Plus连接SCOTT用户 21
2.1.3 使用SQL*Plus查询数据库 23
[实例2.1] 查询scott用户中的部门信息表(dept)中的所有信息 23
2.1.4 退出SQL*Plus 24
2.2 SQL Developer工具 25
2.2.1 SQL Developer工具的下载与启动 25
2.2.2 创建数据库连接 27
2.2.3 使用SQL Developer查询数据库 29
[实例2.2] 查询员工信息表(emp表)的信息 29
2.3 企业管理器(OEM) 31
2.4 数据库配置助手(DBCA) 32
本章知识思维导图 33
第3章 SQL*Plus命令 34 视频讲解:11节,112分钟
3.1 SQL*Plus与数据库的交互 35
3.2 设置SQL*Plus的运行环境 35
3.2.1 SET命令简介 36
3.2.2 使用SET命令设置运行环境 37
[实例3.1] 修改SQL*Plus一页显示的行数 38
[实例3.2] 设置合适的SQL*Plus显示效果 39
[实例3.3] 修改每页顶部的空行数量 40
3.3 常用的SQL*Plus命令 41
3.3.1 HELP命令 41
[实例3.4] 查看SQL*Plus命令清单 41
3.3.2 DESCRIBE命令 42
[实例3.5] 查看员工信息表的结构 42
3.3.3 CONN命令 44
[实例3.6] 连接SYS用户 44
3.3.4 加入注释 44
[实例3.7] 使用“/*...*/”添加注释 45
[实例3.8] 使用“--”添加注释 45
3.4 格式化SQL*Plus输出 46
3.4.1 格式化列 46
[实例3.9] 将英文列标题改为中文列标题 47
[实例3.10] 格式化员工姓名列的宽度 48
3.4.2 定义页与报告的标题 48
[实例3.11] 设置头标题和底标题 49
本章知识思维导图 50
第4章 数据表操作 51 视频讲解:13节,73分钟
4.1 数据表概述 52
4.2 表与表结构操作 52
4.2.1 Oracle常用数据类型 52
4.2.2 表和表结构 53
4.2.3 表结构设计 54
4.3 使用SQL Developer操作表 55
4.3.1 创建表 56
4.3.2 修改表 57
4.3.3 删除表 57
4.4 在SQL *Plus上操作表 58
4.4.1 创建表 58
[实例4.1] 创建表XSB 58
[实例4.2] 向XSB中增加数据 59
4.4.2 修改表 60
[实例4.3] 向XSB中增加3个字段 60
[实例4.4] 将XSB中BZ字段的长度修改为20 62
[实例4.5] 删除XSB的PHOTO和ADDR字段 62
4.4.3 删除表 63
本章知识思维导图 63
第5章 SQL查询基础 64 视频讲解:17节,65分钟
5.1 SQL简介 65
5.1.1 SQL的分类 65
5.1.2 SQL的编写规则 65
5.2 SELECT语句简介 68
5.3 查询所有列 69
5.3.1 查询单个表中所有列 69
[实例5.1] 查询部门信息表中的所有数据 69
5.3.2 查询多个表中所有列 70
[实例5.2] 查询dept和salgrade中的所有数据 70
5.4 查询特定列 71
5.4.1 查询特定列 71
[实例5.3] 查询员工信息表中指定的列 71
5.4.2 伪列 72
[实例5.4] 查询员工信息表中的伪列 72
5.5 消除重复行 72
5.5.1 查询结果中包含重复行 73
5.5.2 查询结果中消除重复行 73
[实例5.5] 查询员工信息表中不重复的职务 73
5.6 带有表达式的SELECT子句 74
[实例5.6] 将员工信息表中的工资调整为原来的1.5倍 74
5.7 为列指定别名 74
5.7.1 不使用列别名 75
5.7.2 使用列别名 75
[实例5.7] 为查询出的列设置别名 76
5.8 处理NULL 77
5.8.1 不处理NULL 77
5.8.2 使用NVL函数处理NULL 77
[实例5.8] 使用NVL函数来处理实发工资 78
5.8.3 使用NVL2函数处理NULL 78
[实例5.9] 使用NVL2函数来处理实发工资 78
5.9 连接字符串 79
5.9.1 使用“||”操作符连接字符串 79
[实例5.10] 使用“||”操作符连接字符串 79
5.9.2 使用函数CONCAT连接字符串 80
[实例5.11] 使用函数CONCAT连接字符串 80
本章知识思维导图 81
第6章 SQL查询进阶 82 视频讲解:17节,87分钟
6.1 筛选查询 83
6.1.1 比较筛选 83
[实例6.1] 查询工资大于1500的员工信息 83
6.1.2 逻辑查询(AND、OR和NOT) 84
[实例6.2] 查询工资大于1500的销售员信息 84
6.1.3 模糊查询(LIKE、NOT LIKE) 85
[实例6.3] 查询姓名中任意位置包含字母F的员工信息 85
[实例6.4] 查询职务是SALESMAN的员工姓名 85
6.1.4 列表范围查找(IN、NOT IN) 86
[实例6.5] 查询指定员工编号之外的员工信息 86
6.1.5 范围查询(BETWEEN…AND) 87
[实例6.6] 查询工资在一定范围内的员工信息 87
6.1.6 判断内容是否为NULL(IS NULL、
IS NOT NULL) 87
[实例6.7] 列出所有不领取奖金,同时工资大于2000的全部员工的信息 88
6.2 分组查询 88
6.2.1 使用GROUP BY进行单字段分组 89
[实例6.8] 分组后应用统计函数 89
6.2.2 使用GROUP BY进行多字段分组 90
[实例6.9] 显示每个部门每种职位的平均工资和工资 90
6.2.3 使用HAVING子句限制分组结果 91
[实例6.10] 统计出平均工资大于1500的部门的记录信息 91
6.3 排序查询 92
6.3.1 单列排序 92
[实例6.11] 按照平均工资由低到高排序显示员工信息 92
6.3.2 多列排序 92
[实例6.12] 按照工资由高到低排序,如果工资相同则按照入职日期由早到晚进行排序 93
6.4 多表关联查询 93
6.4.1 表别名 93
[实例6.13] 查询经理所在的部门名称 94
6.4.2 内连接 94
[实例6.14] 内连接员工信息表和部门信息表 95
6.4.3 外连接 95
[实例6.15] 对员工信息表和部门信息表进行左外连接 96
[实例6.16] 对员工信息表和部门信息表进行右外连接 97
[实例6.17] 对员工信息表和部门信息表进行完全外连接 97
6.4.4 自然连接 98
[实例6.18] 对员工信息表和部门信息表进行自然连接 98
6.4.5 自连接 98
[实例6.19] 查询所有管理者所管理的下属员工信息 99
6.4.6 交叉连接 100
[实例6.20] 计算两个表交叉连接得出结果的行数 101
本章知识思维导图 101
第7章 子查询 102 视频讲解:8节,46分钟
7.1 初识子查询 103
[实例7.1] 查询部门名称为SALES的员工信息 103
7.2 单行子查询 104
[实例7.2] 查询既不是工资也不是工资的员工信息 104
7.3 多行子查询 105
7.3.1 使用IN运算符 105
[实例7.3] 查询不是销售部门的员工信息 105
7.3.2 使用ANY运算符 105
[实例7.4] 查询工资大于20号部门的任意一个员工工资的其他部门的员工信息 106
7.3.3 使用ALL运算符 106
[实例7.5] 查询工资大于部门编号为20的所有员工工资的员工信息 106
7.4 操作数据库(数据操纵语言) 107
7.4.1 插入数据(INSERT语句) 107
[实例7.6] 向部门表中插入一条数据 108
[实例7.7] 批量向表emp_temp中插入数据 109
7.4.2 更新数据(UPDATE语句) 110
[实例7.8] 将工资低于公司平均工资的员工的工资上涨20% 111
[实例7.9] 修改员工号为7900的入职时间 112
[实例7.10] 调整低薪员工的工资 112
7.4.3 删除数据(DELETE语句和TRUNCATE语句) 113
[实例7.11] 删除30号部门内的所有员工信息 113
本章知识思维导图 115
第8章 常用系统函数 116 视频讲解:5节,30分钟
8.1 字符类函数 117
[实例8.1] 连接两个字符串 117
[实例8.2] 查询姓名前3个字母是ALL的员工信息 118
8.2 数字类函数 118
[实例8.3] 查询员工的基本信息和日基本工资 119
[实例8.4] 使用TRUNC()函数求日基本工资 119
8.3 日期和时间类函数 120
8.3.1 SYSDATE函数 120
8.3.2 ADD_MONTHS(d,i)函数 121
[实例8.5] 使用ADD_MONTHS()函数计算日期值 121
8.4 转换类函数 121
[实例8.6] 以“YYYY-MM-DD”格式输出当前日期 122
8.5 聚集类函数 122
本章知识思维导图 123
第2篇 数据库编程篇
第9章 PL/SQL语言编程 126 视频讲解:15节,90分钟
9.1 PL/SQL简介 127
9.1.1 PL/SQL块结构 127
[实例9.1] 输出变量值 128
9.1.2 代码注释 128
9.1.3 标识符 129
9.1.4 分界符 130
9.2 数据类型 130
9.2.1 基本数据类型 131
9.2.2 数值型 131
[实例9.2] 定义NUMBER型数据变量 132
9.2.3 字符型 132
[实例9.3] 输出CHAR和VARCHAR2类型变量的长度 133
9.2.4 日期型 134
[实例9.4] 输出当前日期值和指定的日期值 134
9.2.5 布尔型 135
9.3 变量的声明与赋值 135
9.3.1 定义一般变量 136
[实例9.5] 输出两个数之和 136
9.3.2 使用%TYPE声明变量类型 137
[实例9.6] 根据员工编号得到对应的员工姓名 137
9.3.3 使用RECORD声明变量类型 138
[实例9.7] 使用RECORD类型变量查询员工编号为7369的员工信息 138
9.3.4 使用%ROWTYPE声明变量 139
[实例9.8] 使用%ROWTYPE类型的变量输出部门信息表中部门编号为20的部门信息 139
9.4 流程控制语句 140
9.4.1 选择语句 140
[实例9.9] 指定月份数值,使用IF…THEN…ELSIF语句判断它所属的季节,并输出季节信息 141
[实例9.10] 指定一个季度数值,然后使用CASE语句判断它所包含的月份信息并输出 143
9.4.2 循环语句 144
[实例9.11] 实现前100个自然数求和运算 145
[实例9.12] 求得前100个自然数中奇数之和 146
本章知识思维导图 147
第10章 游标 148 视频讲解:12节,27分钟
10.1 游标简介 149
10.2 隐式游标 149
[实例10.1] 应用隐式游标输出调整工资的员工的数量 150
10.3 显式游标 151
10.3.1 声明游标 151
[实例10.2] 声明游标cur_emp 151
10.3.2 打开游标 152
10.3.3 读取游标 152
10.3.4 关闭游标 152
[实例10.3] 使用游标读取员工信息 153
10.3.5 显式游标的属性 154
10.4 游标变量 154
10.4.1 声明游标变量 155
[实例10.4] 定义一个dept类型的游标变量 155
10.4.2 打开游标变量 156
10.4.3 关闭游标变量 156
[实例10.5] 使用游标变量读取部门信息 156
10.5 通过FOR语句遍历游标 157
10.5.1 隐式游标中使用FOR语句 157
[实例10.6] 查询出职务是销售员的员工信息并输出 157
10.5.2 显式游标中使用FOR语句 157
[实例10.7] 查询出部门编号是10的员工的员工信息 158
本章知识思维导图 159
第11章 存储过程与函数 160 视频讲解:7节,36分钟
11.1 存储过程 161
11.1.1 创建存储过程 161
[实例11.1] 创建存储过程pro_SELECTEmp 161
11.1.2 执行存储过程 162
[实例11.2] 执行pro_SELECTEmp存储过程 162
11.1.3 存储过程的参数 163
[实例11.3] 声明一个带有IN模式参数的存储过程 163
[实例11.4] 声明一个带有OUT模式参数的存储过程 164
[实例11.5] 声明一个带有IN OUT模式参数的存储过程 166
11.1.4 删除存储过程 167
11.2 函数 167
11.2.1 创建函数 167
[实例11.6] 定义函数,用于计算某个部门的员工工资 167
11.2.2 调用函数 168
[实例11.7] 调用函数,计算10号部门的员工工资 168
11.2.3 删除函数 169
本章知识思维导图 169
第12章 触发器 170 视频讲解:5节,38分钟
12.1 触发器简介 171
12.2 语句级触发器 172
[实例12.1] 创建语句级触发器并执行此触发器 172
12.3 行级触发器 174
[实例12.2] 使用行级触发器生成数据表中的主键值 174
12.4 替换触发器 177
[实例12.3] 创建并使用替换触发器 177
12.5 删除触发器 179
本章知识思维导图 179
第13章 索引和视图 180 视频讲解:7节,77分钟
13.1 索引对象 181
13.1.1 索引概述 181
13.1.2 创建索引 182
[实例13.1] 为员工信息表emp的部门编号列deptno创建索引 183
[实例13.2] 为部门信息表dept的dname字段设置位图索引 183
[实例13.3] 为员工信息表emp的job列创建反向键索引 184
[实例13.4] 为员工信息表emp的职位job列创建函数索引 186
13.1.3 合并和重建索引 186
[实例13.5] 对索引emp_deptno_index执行合并操作 186
13.1.4 删除索引 187
13.1.5 显示索引信息 188
13.2 视图对象 189
13.2.1 创建视图 190
[实例13.6] 创建一个查询部门编号为10的视图 190
[实例13.7] 建立只读视图emp_VIEW_readonly 191
[实例13.8] 建立复杂视图emp_VIEW_ complex 191
[实例13.9] 建立连接视图emp_VIEW_union 192
13.2.2 管理视图 193
[实例13.10] 修改视图emp_VIEW_union 193
本章知识思维导图 195
第3篇 核心技术篇
第14章 完整性约束 198 视频讲解:16节,111分钟
14.1 完整性约束简介 199
14.2 非空约束 199
14.2.1 设置非空约束 199
[实例14.1] 创建图书表Books,其中含有非空约束的列 199
14.2.2 修改非空约束 200
14.2.3 删除非空约束 200
14.3 性约束 200
14.3.1 设置性约束 200
[实例14.2] 创建会员表Members,其中含有性约束的列 200
14.3.2 删除性约束 201
14.4 主键约束 202
14.4.1 创建表的同时设置主键约束 202
[实例14.3] 创建教师个人信息表teacher,并定义主键约束 202
14.4.2 创建表之后添加主键约束 202
14.4.3 删除主键约束 203
14.5 外键约束 204
14.5.1 设置外键约束 204
[实例14.4] 设置外键约束 204
14.5.2 删除具有外键约束的表 205
14.5.3 删除外键约束 206
14.6 禁用和激活约束 206
14.6.1 在定义约束时禁用 206
[实例14.5] 在定义约束时禁用约束 207
14.6.2 禁用已经存在的约束 207
14.6.3 激活约束 208
14.7 删除约束 208
本章知识思维导图 209
第15章 管理表空间和数据文件 210 视频讲解:10节,65分钟
15.1 表空间与数据文件的关系 211
15.2 Oracle的默认表空间 212
15.2.1 SYSTEM表空间 212
15.2.2 SYSAUX表空间 213
15.3 创建表空间 213
15.3.1 通过本地化管理方式创建表空间 215
[实例15.1] 通过本地管理创建表空间tbs_test_1 215
15.3.2 通过段空间管理方式创建表空间 216
[实例15.2] 通过手工段空间管理方式创建表空间tbs_mr_1 216
15.4 维护表空间与数据文件 217
15.4.1 设置默认表空间 217
15.4.2 更改表空间的状态 217
15.4.3 重命名表空间 218
15.4.4 删除表空间 218
[实例15.3] 删除表空间tbs_test_2 219
15.4.5 维护表空间中的数据文件 219
[实例15.4] 将表空间TBS_TEST_2设置为自动扩展 220
本章知识思维导图 221
第4篇 高级应用篇
第16章 事务 224 视频讲解:6节,17分钟
16.1 事务的概述 225
16.1.1 事务的特性 225
16.1.2 事务的状态 226
16.2 操作事务 227
16.2.1 设置事务 227
16.2.2 提交事务(COMMIT语句) 228
[实例16.1] 使用COMMIT语句提交事务 229
16.2.3 回滚事务(ROLLBACK语句) 230
[实例16.2] 使用ROLLBACK语句撤销事务 230
16.2.4 设置回退点 231
[实例16.3] 使用保存点(SAVEPOINT)回滚记录 231
本章知识思维导图 232
第17章 数据导入与导出 233 视频讲解:12节,20分钟
17.1 EXPDP和IMPDP概述 234
17.2 EXPDP导出数据 234
17.2.1 导出数据时的准备 234
17.2.2 导出表 235
[实例17.1] 导出dept表和emp表 235
17.2.3 导出模式 236
17.2.4 导出表空间 237
17.2.5 导出全数据库 237
17.3 IMPDP导入数据 238
17.3.1 导入表 238
17.3.2 导入模式 238
17.3.3 导入表空间 238
17.3.4 导入全数据库 239
17.4 图形界面导入导出数据 239
17.4.1 通过SQL Developer导出数据 239
17.4.2 通过SQL Developer导入数据 243
本章知识思维导图 244
第5篇 项目开发篇
第18章 企业人事管理系统 246 视频讲解:1节,6分钟
18.1 开发背景 247
18.2 系统分析 247
18.3 系统设计 247
18.3.1 系统目标 247
18.3.2 系统功能结构 247
18.3.3 系统预览 248
18.3.4 业务流程图 250
18.3.5 文件夹结构设计 251
18.4 数据库设计 251
18.4.1 数据库分析 251
18.4.2 数据库概念设计 251
18.4.3 数据库逻辑结构设计 252
18.5 主窗体设计 253
18.5.1 导航栏的设计 253
18.5.2 工具栏的设计 255
18.6 公共模块设计 257
18.6.1 编写Hibernate配置文件 257
18.6.2 编写Hibernate持久化类和映射文件 257
18.6.3 编写通过Hibernate操作持久化对象的常用方法 258
18.6.4 创建具有特殊效果的部门树对话框 259
18.6.5 创建通过部门树选取员工的面板和对话框 260
18.7 人事管理模块设计 262
18.7.1 人事管理模块功能概述 262
18.7.2 人事管理模块技术分析 263
18.7.3 人事管理模块的实现过程 264
18.8 待遇管理模块设计 268
18.8.1 待遇管理模块功能概述 268
18.8.2 待遇管理模块技术分析 269
18.8.3 待遇管理模块的实现过程 269
本章知识思维导图 274