图书目录

核心技术分册目录

第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