图书目录

第1章 数据库与Oracle概述      001

1.1 认识数据库        002

1.1.1 什么是数据库     002

1.1.2 数据库的基本概念      002

1.1.3 常见的数据库产品      003

1.2 数据库技术构成      005

1.2.1 数据库系统      005

1.2.2 认识SQL         006

1.2.3 数据库访问技术    006

1.3 Oracle数据库概述   007

1.3.1 Oracle的发展历程       007

1.3.2 认识数据库中的对象     008

1.3.3 Oracle 19c的新功能     009

1.3.4 Oracle数据库的优势      011

1.4 如何学习数据库      011

1.5 疑难问题解析       012

1.6 实战训练营        012

第2章 安装与配置Oracle环境       014

2.1 Oracle数据库安装条件    015

2.1.1 硬件条件    015

2.1.2 软件条件    015

2.2 安装与配置Oracle软件   015

2.2.1 下载Oracle 19c软件      016

2.2.2 安装Oracle 19c软件      016

2.2.3 配置Oracle监听程序     018

2.2.4 创建全局数据库orcl      020

2.3 启动与停止Oracle数据库服务   021

2.3.1 启动Oracle数据库服务     021

2.3.2 停止Oracle数据库服务     022

2.3.3 重启Oracle数据库服务     023

2.4 移除Oracle数据库软件   023

2.4.1 卸载Oracle产品    023

2.4.2 删除注册表项     024

2.4.3 删除环境变量     025

2.4.4 删除目录并重启计算机     026

2.5 疑难问题解析       026

2.6 实战训练营        026

第3章 Oracle管理工具        028

3.1 SQL Developer管理工具      029

3.1.1 认识SQL Developer工具     029

3.1.2 使用SQL Developer登录     031

3.2 SQL Plus管理工具      032

3.2.1 认识SQL Plus工具     032

3.2.2 连接指定的数据库      033

3.2.3 使用SQL Plus编辑命令    033

3.2.4 使用SQL Plus格式化查询结果      038

3.2.5 在SQL Plus中输出查询结果    043

3.2.6 在SQL Plus中为语句添加注释      044

3.3 疑难问题解析       045

3.4 实战训练营        045

第4章 数据库的基本操作       047

4.1 Oracle数据库实例   048

4.1.1 认识数据库实例    048

4.1.2 创建数据库实例    048

4.1.3 启动数据库实例    051

4.2 登录Oracle数据库       053

4.2.1 通过DOS窗口登录     053

4.2.2 直接利用SQL Plus登录    053

4.3 Oracle数据字典      054

4.3.1 Oracle 数据字典概述       054

4.3.2 Oracle 常用数据字典       054

4.4 删除数据库        056

4.5 疑难问题解析       058

4.6 实战训练营        058

第5 章 数据类型和运算符        059

5.1 Oracle 数据类型介绍     060

5.1.1 数值类型     060

5.1.2 日期与时间类型     064

5.1.3 字符串类型       070

5.1.4 其他数据类型      072

5.2 数据类型的选择      073

5.2.1 整数和小数       073

5.2.2 日期与时间类型     073

5.2.3 字符类型     073

5.3 常见运算符介绍      074

5.3.1 算术运算符       074

5.3.2 比较运算符       076

5.3.3 逻辑运算符       078

5.3.4 运算符的优先级     079

5.4 疑难问题解析       079

5.5 实战训练营        080

第6 章 数据表的创建与操作         081

6.1 创建与查看数据表   082

6.1.1 创建数据表的语法形式      082

6.1.2 创建不带约束条件的数据表      082

6.1.3 查看数据表的结构       083

6.2 设置数据表的约束条件    084

6.2.1 添加主键约束      084

6.2.2 添加外键约束      089

6.2.3 添加非空约束      092

6.2.4 添加唯一性约束     095

6.2.5 添加检查性约束     097

6.2.6 添加默认约束      099

6.2.7 设置表字段自增约束      100

6.3 修改数据表        102

6.3.1 修改数据表的名称       102

6.3.2 修改字段数据类型       103

6.3.3 修改数据表的字段名      104

6.3.4 在数据表中添加字段      105

6.4 删除数据表        106

6.4.1 删除没有被关联的表      106

6.4.2 删除被其他表关联的主表     107

6.5 疑难问题解析       109

6.6 实战训练营        109

第7 章 插入、更新与删除数据       111

7.1 向数据表中插入数据      112

7.1.1 给表里的所有字段插入数据      112

7.1.2 向表中添加数据时使用默认值        115

7.1.3 一次插入多条数据       115

7.1.4 通过复制表数据插入数据     116

7.2 更新数据表中的数据      118

7.2.1 更新表中的全部数据      118

7.2.2 更新表中指定的单行数据     119

7.2.3 更新表中指定的多行数据     120

7.3 删除数据表中的数据     120

7.3.1 根据条件清除数据       121

7.3.2 清空表中的数据     122

7.4 疑难问题解析       123

7.5 实战训练营        123

第8 章 Oracle 数据的简单查询        125

8.1 认识SELECT 语句       126

8.2 数据的简单查询      126

8.2.1 查询表中所有数据       126

8.2.2 查询表中想要的数据      129

8.2.3 对查询结果进行计算      130

8.2.4 为结果列使用别名       131

8.2.5 在查询时去除重复项      132

8.2.6 在查询结果中给表取别名     132

8.2.7 使用ROWNUM 限制查询数据        133

8.3 使用WHERE 子句进行条件查询      134

8.3.1 比较查询条件的数据查询     134

8.3.2 带BETWEEN…AND 的范围查询      135

8.3.3 带IN 关键字的查询      136

8.3.4 带LIKE 的字符匹配查询      137

8.3.5 未知空数据的查询       140

8.3.6 带AND 的多条件查询    141

8.3.7 带OR 的多条件查询       143

8.4 操作查询的结果      145

8.4.1 对查询结果进行排序      145

8.4.2 对查询结果进行分组      147

8.4.3 对分组结果过滤查询      149

8.5 使用集合函数进行统计查询   149

8.5.1 使用SUM() 求列的和     150

8.5.2 使用AVG() 求列平均值      151

8.5.3 使用MAX() 求列最大值       151

8.5.4 使用MIN() 求列最小值      152

8.5.5 使用COUNT() 进行统计       153

8.6 疑难问题解析       154

8.7 实战训练营        154

第9 章 Oracle 数据的复杂查询        157

9.1 多表嵌套查询       158

9.1.1 使用比较运算符的嵌套查询      158

9.1.2 使用IN 的嵌套查询      160

9.1.3 使用ANY 的嵌套查询    161

9.1.4 使用ALL 的嵌套查询     162

9.1.5 使用SOME 的子查询      162

9.1.6 使用EXISTS 的嵌套查询      163

9.2 多表内连接查询      165

9.2.1 笛卡儿积查询      165

9.2.2 内连接的简单查询       166

9.2.3 相等内连接的查询       167

9.2.4 不等内连接的查询       167

9.2.5 带条件的内连接查询      168

9.3 多表外连接查询      169

9.3.1 认识外连接查询     169

9.3.2 左外连接的查询     170

9.3.3 右外连接的查询     171

9.4 使用排序函数       171

9.4.1 ROW_NUMBER() 函数      171

9.4.2 RANK() 函数       172

9.4.3 DENSE_RANK() 函数     173

9.4.4 NTILE() 函数       173

9.5 使用正则表达式查询     174

9.5.1 查询以特定字符或字符串开头的记录   175

9.5.2 查询以特定字符或字符串结尾的记录   176

9.5.3 用符号“.”代替字符串中的任意一个字符       177

9.5.4 匹配指定字符中的任意一个      177

9.5.5 匹配指定字符以外的字符     178

9.5.6 匹配指定字符串     179

9.5.7 用“*”和“+”来匹配多个字符       180

9.5.8 使用{M} 或者{M,N} 指定字符串连续出现的次数       181

9.6 疑难问题解析       182

9.7 实战训练营        182

第10 章 视图的创建与使用       186

10.1 创建与修改视图     187

10.1.1 创建视图的语法规则     187

10.1.2 在单表上创建视图      187

10.1.3 在多表上创建视图      190

10.1.4 创建视图的视图    190

10.1.5 创建没有源表的视图     191

10.2 修改视图     192

10.2.1 修改视图的语法规则     192

10.2.2 使用CREATE OR REPLACE VIEW语句修改视图       193

10.2.3 使用ALTER 语句修改视图约束       194

10.3 通过视图更新数据       195

10.3.1 通过视图插入数据      195

10.3.2 通过视图修改数据      197

10.3.3 通过视图删除数据      198

10.4 查看视图信息      199

10.5 删除视图     200

10.5.1 删除视图的语法    200

10.5.2 删除不用的视图    200

10.6 限制视图的数据操作      201

10.6.1 设置视图的只读属性     201

10.6.2 设置视图的检查属性     202

10.7 疑难问题解析      203

10.8 实战训练营       203

第11 章 触发器的创建与使用        205

11.1 了解Oracle 触发器      206

11.1.1 什么是触发器       206

11.1.2 触发器的组成       206

11.1.3 触发器的类型       206

11.2 创建触发器       207

11.2.1 创建触发器的语法格式       207

11.2.2 创建触发器时的注意事项    209

11.2.3 为单个事件定义触发器       209

11.2.4 为多个事件定义触发器       212

11.2.5 为单个事件触发多个触发器     213

11.2.6 通过条件触发的触发器       214

11.3 查看触发器       216

11.3.1 查看触发器的名称      216

11.3.2 查看触发器的内容信息       217

11.4 修改触发器       217

11.5 删除触发器       219

11.6 疑难问题解析      219

11.7 实战训练营       220

第12 章 Oracle 系统函数的应用       221

12.1 数学函数     222

12.1.1 求绝对值函数ABS()     222

12.1.2 求余函数MOD()        222

12.1.3 求平方根函数SQRT()    223

12.1.4 四舍五入函数ROUND() 和取整函数TRUNC()         223

12.1.5 幂运算函数POWER() 和EXP()      224

12.1.6 对数运算函数LOG() 和LN()    225

12.1.7 符号函数SIGN()        226

12.1.8 正弦函数SIN() 和余弦函数COS()    226

12.1.9 正切函数TAN() 与反正切函数ATAN()      227

12.1.10 随机数函数DBMS_RANDOM.RANDOM和DBMS_RANDOM.VALUE()       228

12.1.11 整数函数CEIL(x) 和FLOOR(x)      229

12.2 字符串函数       230

12.2.1 计算字符串长度的函数LENGTH(str)       230

12.2.2 合并字符串的函数CONCAT()       230

12.2.3 获取指定字符在字符串中位置的函数INSTR()          231

12.2.4 字母大小写转换函数LOWER() 和UPPER()          231

12.2.5 获取指定字符串长度的函数SUBSTR()        232

12.2.6 填充字符串的函数LPAD()       233

12.2.7 删除字符串空格的函数LTRIM(s)、RTRIM(s) 和TRIM(s)    233

12.2.8 删除指定字符串的函数TRIM(s1 FROM s)          234

12.2.9 替换字符串函数REPLACE()    235

12.2.10 字符串逆序函数REVERSE(s)      235

12.2.11 字符集名称和ID 互换函数NLS_CHARSET_ID(string) 和NLS_CHARSET_NAME(number)    236

12.3 日期和时间函数     237

12.3.1 获取当前日期和当前时间函数SYSDATE和SYSTIMESTAMP      237

12.3.2 获取时区的函数DBTIMEZONE       238

12.3.3 获取指定月份最后一天的函数LAST_DAY()        239

12.3.4 获取指定日期后一周的日期函数NEXT_DAY()       239

12.3.5 获取指定日期特定部分的函数EXTRACT()       240

12.3.6 获取两个日期之间的月份数    240

12.4 转换函数     241

12.4.1 任意字符串转ASCII 类型字符串函数      241

12.4.2 二进制转十进制函数     241

12.4.3 数据类型转换函数      242

12.4.4 数值转换为字符串函数       242

12.4.5 字符转日期函数TO_DATE()    243

12.4.6 字符串转数字函数TO_NUMBER()     243

12.5 系统信息函数     244

12.5.1 返回登录名函数USER      244

12.5.2 返回会话及上下文信息函数USERENV()       244

12.6 疑难问题解析      245

12.7 实战训练营       245

第13 章 PL/SQL 编程基础          247

13.1 PL/SQL 概述      248

13.1.1 PL/SQL 是什么     248

13.1.2 PL/SQL 的结构     248

13.1.3 PL/SQL 的编程规范      253

13.2 使用常量和变量     254

13.2.1 认识常量         254

13.2.2 认识变量         255

13.3 使用表达式       256

13.3.1 算术表达式        256

13.3.2 关系表达式        257

13.3.3 逻辑表达式        257

13.4 PL/SQL 的控制结构      258

13.4.1 顺序结构         258

13.4.2 选择结构         259

13.4.3 循环结构         259

13.5 PL/SQL 的控制语句      260

13.5.1 IF 条件控制语句    260

13.5.2 CASE 条件控制语句      262

13.5.3 LOOP 循环控制语句     265

13.6 PL/SQL 中的异常       266

13.6.1 异常概述         266

13.6.2 异常处理         267

13.7 疑难问题解析      268

13.8 实战训练营       269

第14 章 存储过程的创建与使用     271

14.1 创建存储过程      272

14.1.1 创建存储过程的语法格式    272

14.1.2 创建不带参数的存储过程    272

14.1.3 创建带有参数的存储过程    274

14.2 调用存储过程      276

14.2.1 调用不带参数的存储过程    276

14.2.2 调用带有参数的存储过程    279

14.3 修改存储过程      279

14.4 查看存储过程      281

14.5 存储过程的异常处理      282

14.6 删除存储过程      283

14.7 疑难问题解析      284

14.8 实战训练营       285

第15 章 游标的创建与使用       286

15.1 认识Oracle 中的游标    287

15.1.1 游标的概念        287

15.1.2 游标的优点        287

15.1.3 游标的分类        287

15.1.4 游标的属性        288

15.2 游标的使用步骤     288

15.2.1 声明游标         288

15.2.2 打开显式游标       290

15.2.3 读取游标中的数据      290

15.2.4 关闭显式游标       291

15.3 显式游标的使用     291

15.3.1 读取单条数据       291

15.3.2 读取多条数据       292

15.3.3 批量读取数据       294

15.3.4 通过遍历游标提取数据       295

15.4 显式游标属性的应用      296

15.4.1 %ISOPEN 属性     296

15.4.2 %FOUND 属性     297

15.4.3 %NOTFOUND 属性      299

15.4.4 %ROWCOUNT 属性     300

15.5 隐式游标的使用     301

15.5.1 使用隐式游标       301

15.5.2 游标使用中的异常处理       303

15.6 隐式游标的属性     304

15.6.1 %ISOPEN 属性     304

15.6.2 %FOUND 属性     305

15.6.3 %NOTFOUND 属性      307

15.6.4 %ROWCOUNT 属性     308

15.7 疑难问题解析      309

15.8 实战训练营       310

第16 章 事务与锁的应用         311

16.1 事务管理     312

16.1.1 事务的概念        312

16.1.2 事务的特性        312

16.1.3 设置只读事务       314

16.1.4 事务管理的语句    315

16.1.5 事务实现机制       315

16.1.6 事务的类型        315

16.1.7 事务的保存点       316

16.2 锁的应用     318

16.2.1 锁的概念         318

16.2.2 锁的分类         319

16.2.3 锁的类型         320

16.2.4 锁等待和死锁       321

16.3 死锁的发生过程     322

16.4 疑难问题解析      323

16.5 实战训练营       323

第17 章 Oracle 表空间的管理      324

17.1 了解表空间       325

17.1.1 什么是表空间       325

17.1.2 表空间的分类       325

17.2 管理表空间的方案       326

17.2.1 通过数据字典管理表空间    326

17.2.2 通过本地管理表空间     327

17.3 表空间的类型      328

17.3.1 查看表空间        328

17.3.2 永久表空间        328

17.3.3 临时表空间        329

17.3.4 还原表空间        330

17.4 创建表空间       330

17.4.1 创建表空间的语法规则       330

17.4.2 创建本地管理的表空间       331

17.4.3 创建还原表空间    333

17.4.4 创建临时表空间    335

17.4.5 创建临时表空间组      337

17.4.6 默认临时表空间    340

17.4.7 创建大文件表空间      341

17.5 查看表空间       342

17.5.1 查看默认表空间    342

17.5.2 查看临时表空间    343

17.5.3 查看临时表空间组      344

17.6 表空间的状态管理       344

17.6.1 表空间的三种状态      345

17.6.2 表空间的脱机管理      345

17.6.3 表空间的只读管理      346

17.7 表空间的基本管理       347

17.7.1 更改表空间的名称      347

17.7.2 删除表空间        348

17.8 疑难问题解析      349

17.9 实战训练营       349

第18 章 管理控制文件和日志文件      350

18.1 管理控制文件      351

18.1.1 什么是控制文件    351

18.1.2 查看控制文件的信息     351

18.1.3 控制文件的多路复用     352

18.1.4 手动创建控制文件      355

18.1.5 删除控制文件       358

18.2 管理日志文件      359

18.2.1 什么是日志文件    359

18.2.2 查看日志文件信息      360

18.2.3 查看归档日志信息      361

18.2.4 查询日志文件       362

18.2.5 删除日志文件       363

18.3 管理日志文件组     363

18.3.1 新建日志文件组    363

18.3.2 添加日志文件到组      364

18.3.3 查询日志文件组    365

18.3.4 删除日志文件组    365

18.4 疑难问题解析      366

18.5 实战训练营       366

第19 章 Oracle 数据的备份与还原    368

19.1 数据的备份与还原       369

19.1.1 物理备份数据       369

19.1.2 数据的冷热备份    369

19.1.3 数据的还原        373

19.2 数据表的导出和导入      375

19.2.1 使用EXP 工具导出数据      375

19.2.2 使用EXPDP 工具导出数据      375

19.2.3 使用IMP 工具导入数据      377

19.2.4 使用IMPDP 工具导入数据      377

19.3 疑难问题解析      377

19.4 实战训练营       378

第20 章 用户与角色的安全管理     379

20.1 认识Oracle 中的用户    380

20.1.1 预定义用户        380

20.1.2 用户的安全属性    380

20.1.3 用户的登录方式    381

20.2 用户的基本管理     381

20.2.1 新建普通用户       381

20.2.2 修改用户信息      383

20.2.3 查询用户信息       384

20.2.4 删除无用的用户    385

20.3 用户权限管理      385

20.3.1 查看系统权限       386

20.3.2 系统权限授予       386

20.3.3 系统权限收回       388

20.3.4 对象权限授予       388

20.3.5 对象权限收回       389

20.3.6 查看用户权限       390

20.4 数据库角色管理     391

20.4.1 创建角色         391

20.4.2 设置角色         392

20.4.3 修改角色         394

20.4.4 查看角色         394

20.4.5 删除角色         395

20.5 概要文件的管理     395

20.5.1 创建概要文件       395

20.5.2 修改概要文件       396

20.5.3 查询概要文件       397

20.5.4 删除概要文件       397

20.6 资源限制与口令管理      398

20.6.1 资源限制管理       398

20.6.2 数据库口令管理    399

20.7 锁定与解锁用户     400

20.8 疑难问题解析      402

20.9 实战训练营       402

第21 章 Oracle 的性能优化        403

21.1 性能优化的原则     404

21.2 优化Oracle 内存   404

21.2.1 优化系统全局区    404

21.2.2 优化进程全局区    406

21.3 优化查询     407

21.3.1 分析查询语句的执行计划    407

21.3.2 优化子查询        409

21.4 优化数据库结构     409

21.4.1 分解多个表        409

21.4.2 增加中间表        411

21.4.3 增加冗余字段       414

21.4.4 优化插入记录的速度     414

21.5 优化Oracle 服务器     415

21.5.1 优化服务器硬件    415

21.5.2 优化Oracle 的参数     415

21.6 疑难问题解析      417

21.7 实战训练营       417

第22 章 Java 操作Oracle 数据库    418

22.1 JDBC 概述       419

22.2 Java 连接数据库    419

22.2.1 加载数据库驱动程序     419

22.2.2 以Thin 方式连接Oracle 数据库       422

22.2.3 以JDBC-ODBC 桥方式连接Oracle数据库       423

22.3 操作Oracle 数据库     424

22.3.1 创建Statement 对象      425

22.3.2 使用SELECT 语句查询数据    425

22.3.3 插入、更新和删除数据       425

22.3.4 执行任意SQL 语句       426

22.3.5 关闭创建的对象    427

22.4 疑难问题解析      427

第23 章 设计人事管理系统数据库      428

23.1 系统概述     429

23.2 系统功能     429

23.3 数据库的设计和实现      430

23.3.1 设计表       430

23.3.2 设计视图         434

23.3.3 设计触发器        435

第24 章 设计学生信息管理系统数据库           436

24.1 系统概述     437

24.2 系统功能     437

24.3 数据库的设计和实现      438

24.3.1 设计表       438

24.3.2 设计视图         441

24.3.3 设计触发器        442

第25 章 综合项目—开发网上购物商城         444

25.1 案例运行及配置     445

25.1.1 开发及运行环境    445

25.1.2 系统运行         445

25.1.3 项目开发及导入步骤     448

25.2 系统分析     453

25.2.1 系统总体设计       453

25.2.2 系统界面设计       453

25.3 功能分析     453

25.3.1 系统主要功能       453

25.3.2 系统文件结构       454

25.4 系统主要功能实现       454

25.4.1 数据库与数据表的设计       454

25.4.2 实体类创建        457

25.4.3 数据库访问类       458

25.4.4 控制器实现        459

25.4.5 业务数据处理       461