Oracle期末复习资料,不用再担心考试啦!
Posted Mr.wu123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle期末复习资料,不用再担心考试啦!相关的知识,希望对你有一定的参考价值。
Oracle复习总结
文章目录
第1章 Oracle11g简介
1.4 Oracle11g的安装与配置
1.5 Oracle11g的管理工具
使用SQL*PLus
使用SQL*PLus至少要开启Oracle的两个服务OracleOraDb11g_home1TNSListener和OracleServiceORCL ,启动
第2章 Oracle的体系结构
2.1 Oracle体系结构概述
完整的Oracle数据库系统通常由两部分组成:实例和数据库。
数据库是一系列物理文件的集合(数据文件,控制文件,联机文件,参数文件等);
实例是一组Oracle后台进程/线程以及在服务器分配的共享内存区。(ORCL)
工作方式:实例加载数据库
一个系统的基本组织分为三部分:组成、工作关系、管理和组织数据。
启动数据库:
- 创建并开启实例
- 实例加载数据库
- 打开数据库
2.2 逻辑存储结构
逻辑存储结构是Oracle数据库存储结构的核心内容,对Oracle数据库的所有操作都会涉及到其逻辑存储结构。Oracle的逻辑存储单元从小到大依次为:
-
数据块(无固定大小,用来管理存储空间的最小单元,也是执行数据库输入输出操作的最小单元)
-
盘曲(存储分配的最小单位)
-
段(一个独立的逻辑存储结构)
-
表空间(最大的逻辑存储结构,在数据库中建立的所有内容都被存储在表空间中),在创建数据库时,Oracle会自动创建一些默认的表空间,其中除了用于存储用户数据的普通表空间外,在一个数据库中还会存在3种类型的表空间:SYSTEM表空间、撤销表空间和临时表空间。
2.3 物理存储结构
主要包括3类物理文件:
- 数据文件(*.dbf):大致分为3类,系统数据文件(system…dbf)、撤销段文件(undo…dbf)、用户数据文件(user…dbf)
- 控制文件(*.dbf):一个很小的二进制文件,控制文件对于数据库的成功启动和正常运行是至关重要的。每个数据库必须至少拥有一个控制文件,一个数据库可以同时有多个控制文件,但是一个控制文件只能属于一个数据库。
- 重做日志文件(*.dbf):记录数据库所有修改信息的文件。
V$datafile:动态视图
2.4 实例的存储结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9LceI8gT-1624723653963)(C:/Users/86188/Desktop/QQ截图20210621210138.png)]
实例的内存结构从总体上分为两部分:
-
SGA区:系统全局区,位于系统的共享内存段中,因此SGA区中的数据可以被所有的服务和后台进程共享。
-
PGA区:程序全局区,保存的是某个服务进程私有的数据和控制信息,它是非共享内存。Oracle每个服务进程都有自己的PGA区。一般PGA区都由私有SQL工作区和会话内存区组成。
2.5 实例的进程结构
专用服务器进程:只能为一个用户提供进程
共享服务器进程:可以为多个用户进程提供服务
2.6 数据字典
静态数据字典:在用户访问数据字典时,不会发生改变,主要是由表和视图组成,表是不能访问的,但是能访问其中的视图。主要分为三类。
动态数据字典:依赖数据库运行的性能,反映数据库运行的一些内在信息,会不断进行更新。当Oracle关闭时,动态性能表会被丢弃,动态性能表的名称都是以V$开头。
第3章管理Oracle数据库
3.2 启动数据库与实例
分为三个步骤:
- 启动实例—开放程序
- 加载数据库—读
- 打开数据库—读写
在启动实例之前,首先需要启动SQL*Plus并连接到Oracle。
1.在命令提示窗口中输入如下命令,以不连接数据库的方式启动SQL*Plus
C:>sqlplus /nolog
2.以SYSDBA身份连接到Oracle
SQL> connect system/admin as sysdba
启动模式
- NOMOUNT模式(启动实例不加载数据库)
- MOUNT模式(加载数据库但不打开数据库)
- OPEN模式(打开数据库,默认模式)
- FORCE模式(用于指定终止实例并重新启动数据库)
转换启动模式
alter修改模式,只能从低到高转换,不能越级转换和逆序转换。
在OPEN模式下,可以选择将数据库设置为非受限状态和受限状态。在受限状态下,只有具有管理权限的用户才能够访问数据库。当需要进行如下数据库操作时,必须将数据库置于受限状态。
- 执行数据导入或导出操作
- 暂时拒绝普通用户访问数据库
- 进行数据库移植或升级操作
将数据库启动到受限状态的OPEN模式
startup restrict
恢复为非受限状态
alter system disable restricted session
切换为受限状态
alter system enable restricted session
切换只读模式
alter database open read only
重新设置为读写模式
alter database open read write
3.3 关系数据库与实例
关闭数据库与实例也分为3步:
- 关闭数据
- 实例卸载数据库
- 最后终止实例
1 四种关闭方式:
1 NORMAL(正常关闭方式)
- 阻止任何用户建立新的连接
- 等待当前所有正在连接的用户主动断开连接,已经连接的用户能够继续当前的操作
- 一旦所有用户都断开连接,则立即关闭、卸载数据库,并终止实例
2 IMMEDIATE(立即关闭方式)
- 阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事务
- 任何未提交的事务均被回退
- Oracle不在等待用户主动断开连接,而是直接关闭、卸载数据库,并终止实例
3 TRANSACTIONAL(事务关闭方式)
- 阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事务
- 等待所有未提交的活动事务提交完毕,然后立即端开用户的连接
- 关闭、卸载数据库,并终止实例
4 ABORT(终止关闭方式)
- 阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事务
- 立即终止当前正在执行的SQL语句
- 任何提交的事务均不被回退
- 立即断开所有用户的连接,关闭、卸载数据库,并终止实例
第4章 SQL*Plus
help index:查询SQL*Plus所有命令清单。help+命令:查询该命令的相关信息(功能、语法)
4.1 使用set语句选项
在Oracle11g系统中,用户可以使用set命令来设置SQL*Plus的运行环境。使用set命令的语法格式为:
set system_option value
show system_option用来查看当前的运行环境。
常用的4个set命令选项:
set linesize {80|N}:设置SQL*Plus在一行中能够显示的总字符数,默认值为80。可以的取值为任意正整数。
set newpage {1|N|NONE}:设置每页打印标题前的空行数,默认值为1
set pagesize {14|N}:设置每页打印的行数,该值包括newpage设置的空行数
set pause {off|on|text}:设置SQL*Plus输出结果时,是否滚动显示。当取值为on时表示输出结果的每一页都暂停,用户按回车键后继续显示;取值为字符串时,每次暂停都将显示该字符串。
4.2 SQL*Plus命令
SQL*Plus提供了许多可以定制该工具行为的命令,这些命令包括:help、describe、prompt和spool等。
1 HELP命令
使用help命令查看相关的命令信息,但是只提供了部分命令嘻嘻,SQL*Plus帮助系统可以向用户提供下面一些信息。
- 命令标题
- 命令作用描述的文件
- 命令的缩写形式
- 命令中使用的强制参数和可选参数
语法形式为:help [topic]
help index命令查看SQL*PLus命令清单。help shutdown查看shutdown命令的使用方式。help reserve words查看SQL和PL/SQL中使用的关键字。
2 DESCRIBE命令
可以返回对数据库中所存储的对象的描述,对于表、视图等对象而言,desc命令都可以列出其各个列的名称以及属性。除此之外,desc还会输出过程、函数和程序包的规范。
3 PROMPT命令
可以在屏幕上输出一行数据,语法形式为:prompt prompt_text;prompt_text表示用于指定要在屏幕上显示的提示信息。
@表示运行脚本文件
4 SPOOL命令
把查询结果保存到文件中或者发送到打印机中,要指明路径,默认为xxx.lst文件。
4.3 格式化查询结果
SQL*Plus提供了大量的命令用于格式化查询结果,使用这些命令可以对查询结果进行格式化,以产生用户需要的报表。常用的格式化查询结果命令包括culumn、compute、break、btitle和ttitle等。
格式化命令遵循以下一些规则:
- 格式化命令设置后,将一直起作用,直到该会话结束或下一个格式化命令的设置
- 每一次报表结束时,应该重新设置SQL*Plus为默认值
- 如果为某个列指定了别名,那么必须引用该列的别名,而不能再使用别名。
1 column命令
可以控制查询结果集中列的显示格式。
常用的option选项的取值及意义:
format:为列指定显示格式。在查询sal列时,要求以货币符号“$”开头,并且以千分位的形式表示。
heading:定义列的标题。
justify:调整标题的对齐方式。默认情况下时数字列右对齐,其他列左对齐。可以设置的标题位置值为:left、center、right。
用户可以通过on或off设置某个的显示属性是否起作用。通过clear选项清除设置的显示属性
2 ttitle和btitle命令
4.4 缓存区
可以在缓存区存储用户最近执行的命令,通过在缓存区中存储这些命令,用户可以重新调用、编辑、或运行那些最近输入的SQL语句。编辑缓存区最常用的方法是将缓存区中的内容传递到windows记事本中进行编辑。
- sava:把当前SQL缓存区中的内容保存到指定的文件中。
- list:查看缓存区中最近执行的SQL命令
- edit:对文本内容进行编辑
- get:把一个命令文件的内容放入到缓存区
- clear buffer:清除缓存区的内容
- /:执行缓存区的命令
第5章 SQL语句模式
- SQL关键字、对象不区分大小写
- 字符型作为语句中的引用值,区分大小写
- 对象作为字符型数据时,默认为大写
- SQL语句以分号;结束
对象:表、视图、索引、序列、函数和过程等。
DDL 数据定义语言:create、alter、drop
DCL 数据控制语言:grant、revoke
DML 数据操作语言:select、insert、delete、update
5.1 用户模式
1 SCOTT模式
2 HR模式
在默认情况下,HR模式已经被锁定,这就需要对该用户模式解锁。
3 结果过程
5.2 SELECT语句的用法
对象对表或视图的操作都是通过SQL语句来实现的,SQL语句是一种标准化的结果化查询语句。
order by排序操作:ASC按照升序排序,默认的排序序列,DESC按照降序排序。如果是按照多个列进行排序,那么列之间的顺序就非常重要。
多表检索
1 表的别名
2 内连接
3 外连接
4 自然连接
5 交叉连接
5.3 函数的使用
5.4 子查询
在多数情况下,子查询可以使用连接查询来代替。但实际上,连接查询的效率远远高于子查询的效率,但是子查询更容易理解,使用更灵活、方便。
在使用子查询执行操作时,应该遵循如下规则。
子查询必须使用括号括起来,否则无法判断子查询语句的开始和结束
子查询不能包括order by子句
子查询允许嵌套多层,但是最多嵌套255层
5.5 操作数据
1 插入操作
2 更新操作
3 删除操作
5.6 Oracle事务处理
事务是数据库系统工作的一个逻辑单元,它由一个或多个SQL语句组成。对于数据库而言,事务是不可分割的工作单元,一个事务中所有SQL语句要么全部执行,要么全部不执行。也就是说,当事务被提交完后,该事务的操作才真正被保存到数据库中。如果某个事务被回退了,那么该事务的所有操作都被取消。事务的回退和提交可以由用户显式执行,也可以隐式执行。
回退事务:先建立savepoint s;然后rollback to savepoint s;
第6章 PL/SQL编程基础
6.1 PL/SQL概述
过程化的结构查询语言,可以弥补SQL语言的不足。PL/SQL程序的基本结构称为块,每一块都包含了PL/SQL语言和SQL语句。无名块:不能存储、不复用;命名块:可存储、可复用;
分为三部分:
- 声明(declare):对变量、常量、游标和异常等进行说明—可选
- 执行(begin……end):块主体,功能实现部分—必须具有
- 异常处理(exception):对产生了异常进行处理—可选
6.2 变量与数据类型
1 标量变量
2 复合变量
多个基本数据类型捆绑在一起的记录数据类型,即复合变量。复合变量也分为两种:
1 自定义记录类型
2 %rowtype类型
6.3 条件语句
1 if……then条件语句
2 if……then……else条件语句
3 if……then……elsif条件语句
注意关键字elsif不能写成elseif
4 case条件语句
6.4 循环语句
1 loop……end loop循环
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fr8szW43-1624723653994)(C:/Users/86188/Desktop/QQ图片20210622173349.jpg)]
2 while循环
3 for循环
6.5 游标的使用
游标的作用就相当于指针,通过游标程序设计语言可以一次处理查询结果集中的一行。在Oracle中,游标可以分为两大类:静态游标 和REF游标。REF游标是一种引用类型,类似于指针。而静态游标又可以分为显式游标和隐式游标。
- ref游标在运行时确定结果集
- 静态游标在编译时游标已经指向了一个结果集。
1 隐式游标
2 显式游标
使用显示游标处理数据需要4个步骤:
- 定义游标
- 打开游标
- 提取游标数据
- 关闭游标
在定义游标时,需要指定数据类型,但是不能使用长度约束。如NUMBER(4)、VARCHAR(10)等都是错误的。
3 游标for循环
6.6 异常处理
Oracle系统的异常可以分为3类:
- 预定义异常:系统已经预定义的异常
- 非预定义异常:需要将错误代码(编号)与自定义的一个异常名关联绑定
- 用户定义异常:用户自己定义的异常
1 预定义异常
当出现错误时,PL/SQL有两种方法向用户报告信息;
- SQLCODE函数:返回错误编号
- SQLERRM函数:返回报错信息
2 非预定义异常
3 用户定义的异常
用户自定义的异常是通过显示使用RAISE语句来引发的。当引发一个异常时,控制就转到EXCEPTION异常处理部分执行异常处理语句。自定义异常的处理步骤如下:
-
定义异常处理
declare
异常名 exception
-
触发异常处理
raise 异常名
- 处理异常
触发异常处理后,在程序块中可以像对系统预定义一样进行处理
第7章 存储过程、触发器和程序包
很多时候都需要保存PL/SQL程序块,以便随后可以重用。这也意味着程序块需要一个名称,这样才可以调用或者引用它。命名的PL/SQL程序块可被独立编译并存储在数据库中,任何与数据库相连接的应用程序都可以访问这些存储的PL/SQL程序块。Oracle提供了四种类型的可存储程序:过程、函数、触发器和程序包。
7.1 存储过程
1 创建存储过程
运行方式:
- 在SQL*Plus中使用execute+过程名
- 将过程作为一条语句嵌入到PL/SQL块中运行
2 参数
三种参数模式:
-
in:输入数据/接收数据
三种传参方式
-
out:输出数据/传出数据,不需要指明长度,只需要指明类型
-
in out:具有in和out参数的双重性质
7.2 函数
放在PL/SQL块,通常函数作为语句的一部分。变量名:=函数名(实参列表)。
调用函数与过程不同,调用函数必须使用一个变量来保存返回的结果值,这样函数就组成了表达式的一部分。这意味着函数不能像过程一样独立地调用。
7.3 触发器
before表示在执行主动操作之前判断是都影响触发体
1 行级触发器
如果创建时,未指明为for each row,则默认为行级触发器。主动操作影响到数据库中多少行数据,触发器主题(被动)都只执行一次。
7.4 程序包
1 程序包规范
2 程序包主体
3 重载
第8章 管理表
8.1 创建表
8.2 修改表
8.3 定义和管理数据完整性约束
主键约束不能为空,但唯一约束能为空。
第12章 管理表空间和数据文件
Oracle11g中用户默认的表空间为: =USERS
12.1建立表空间
12.2 维护表空间
12.3 管理数据文件
第13章 用户权限与安全
13.1 用户和模式
用户和模式一一对应
用户:连接访问数据库的对象
模式/方案:用户所拥有数据库对象集合,一个用户拥有的所有数据对象的集合模式。(不同模式下用户名可以相同)
13.2 管理用户
13.3 资源配置PROFILE
13.4 管理权限
Oracle中的权限可以分为两大类:
- 系统权限:数据库操作、DDL、DML(Any)—整个数据库中的所有对象
- 对象权限(某一特定的对象):表、视图、索引、函数……
13.5 管理角色
第14章 导入与导出
三种方式:第一种和第二种使用时,名字+help=y
-
EXP和IMP:用于客户端
-
EXPDP和IMPDP:数据泵,用于服务器
-
SQL*Loader:用于非Oracle数据库导入
14.1 EXP和IMP
14.2 EXPDP和IMPDP
导入导出的四种模式:
- 表
- 用户模式
- 表空间
- 全数据库—(full=y)
14.3 SQL*Loader导入外部数据
-
控制文件:编写
-
数据文件:整理格式
- 自由格式
- 固定格式:例如excel,要将vv.xls(x)文件另存为vv.csv(svl逗号分隔)
以上是关于Oracle期末复习资料,不用再担心考试啦!的主要内容,如果未能解决你的问题,请参考以下文章