oracle完全学习手册.docx
《oracle完全学习手册.docx》由会员分享,可在线阅读,更多相关《oracle完全学习手册.docx(63页珍藏版)》请在冰豆网上搜索。
oracle完全学习手册
数据库
表空间
段
区
数据块
...
数据块
...
区
...
段
...
表空间
表空间说明
system系统表空间,用于存储系统的数据字典、系统的管理信息和
用户数据表等
sysaux辅助系统表空间。
用于减少系统表空间的负荷,提高系统作
业效率。
该表空间由Oracle系统自动维护,一般不用于
存储用户数据
temp临时表空间。
用于存储临时的数据,例如存储排序时产生的
临时数据。
一般情况下,数据库中的所有用户都使用
temp作为默认的临时表空间
undotbs1撤销表空间。
用于在自动撤销管理方式下存储撤销信息。
在
撤销表空间中,除了回退段以外,不能建立任何其他类
型的段。
所以,用户不可以在撤销表空间中创建任何数
据库对象
users用户表空间。
用于存储永久性用户对象和私有信息
Oracle体系结构
Oracle数据库从存储结构上可以分为物理存储结构与逻辑存储结构,从
实例结构上可以分为内存结构与进程结构。
Oracle的物理存储结构是由存储在磁盘中的操作系统文件所组成的,
Oracle在运行时需要使用这些文件。
一般,Oracle数据库在物理上主要由3
种类型的文件组成,分别是数据文件(*.dbf)、控制文件(*.ctl)和重做日
志文件(*.log)。
数据文件
数据文件(DataFile)是指存储数据库数据的文件。
数据库中的所有数
据最终都保存在数据文件中,例如,表中的记录和索引等。
如果数据文件
中的某些数据被频繁访问,则这些数据会被存储在内存的缓冲区中。
读取
数据时,Oracle系统会首先从内存的数据缓冲区中查找相关数据信息,如
果找不到,则从数据库文件中把数据读取出来,存放到内存的数据缓冲区
中,供查询使用;存储数据时,修改后的数据信息,也是先存放在内存的
数据缓冲区中,在满足写入条件(例如执行提交操作)时,由Oracle的后
台进程DBWn将数据写入数据文件。
特点
数据文件一般有以下几个特点:
一个表空间由一个或多个数据文件组成。
一个数据文件只对应一个数据库。
而一个数据库通常包含多个数据文件。
数据文件可以通过设置其参数,实现其自动扩展的功能。
如果想要了解数据文件的信息,可以查询数据字典dba_data_files和
v$datafile。
数据字典介绍
Oracle数据字典(DataDictionary)是存储在数据库中的所有对象信息
的知识库,Oracle数据库管理系统使用数据字典获取对象信息和安全信
息,而用户和数据库系统管理员则用数据字典来查询数据库信息。
Oracle数据字典保存有数据库中对象和段的信息,例如表、视图、索引、
包、存储过程以及与用户、权限、角色、审计和约束等相关的信息。
数据字典视图类型
视图类型说明
USER视图USER视图的名称以user_为前缀,用来记录用户对象的信息。
例如user_tables视图
ALL视图ALL视图的名称以all_为前缀,用来记录用户对象的信息以及
被授权访问的对象信息。
例如all_synonyms视图
DBA视图DBA视图的名称以dba_为前缀,用来记录数据库实例的所有
对象的信息。
例如dba_tables视图
V$视图V$视图的名称以v$为前缀,用来记录与数据库活动相关的性
能统计动态信息。
例如v$datafile视图
GV$视图GV$视图的名称以gv$为前缀,用来记录分布式环境下所有实
例的动态信息。
例如gv$lock视图
基本的数据字典
字典名称说明
dba_tables所有用户的所有表的信息
dba_tab_columns所有用户的表的字段信息
dba_views所有用户的所有视图信息
dba_synonyms所有用户的同义词信息
dba_sequences所有用户的序列信息
dba_constraints所有用户的表的约束信息
dba_indexes所有用户的表的索引简要信息
dba_ind_columns所有用户的索引的字段信息
与数据库组件相关的数据字典
组件数据字典中的表或说明
视图
数据库v$datafile记录系统的运行情况
表空间dba_tablespaces系统表空间的基本信息
dba_free_space系统表空间的空闲空间的信息
控制文件v$controlfile系统控制文件的基本信息
v$controlfile_record
系统控制文件中记录文档段的
_section
信息
v$parameter系统各参数的基本信息
数据文件dba_data_files系统数据文件以及表空间的基
本信息
v$filestat来自控制文件的数据文件信息
v$datafile_header记录数据文件头部分的基本信
息
常用动态性能视图
视图名称说明
v$fixed_table显示当前发行的固定对象的说明
v$instance显示当前实例的信息
v$latch显示锁存器的统计数据
v$librarycache显示有关库缓存性能的统计数据
v$rollstat显示联机的回滚段的名字
v$rowcache显示活动数据字典的统计
v$sga显示有关系统全局区的总结信息
v$sgastat显示有关系统全局区的详细信息
v$sort_usage显示临时段的大小及会话
v$sqlarea显示SQL区的SQL信息
SQLPlus连接数据库
SQL*Plus工具
SQL*Plus工具主要用于数据查询和数据处理。
利用SQL*Plus可以将
SQL和Oracle专有的PL/SQL结合起来进行数据查询和处理。
SQL*Plus工具可以实现以下功能:
连接数据库,完成数据库管理。
对数据表可以执行插入、修改、删除、查询操作、以及执行SQL、PL/SQL块。
查询结果的格式化、运算处理、保存、打印以及输出Web格式。
显示任何一个表的字段定义,并与终端用户交互。
运行存储在数据库中的子程序或包。
启动/停止数据库实例。
SQL*Plus连接与断开数据库
1.启动SQL*Plus,连接到默认数据库
2.从命令行连接数据库
3.使用SQL*Plus命令连接与断开数据库
在SQL*Plus中输入SQL语句时,一旦执行该语句,则SQL*Plus会将该
语句保存到缓冲区中,该语句不再获得焦点,也就不能再接受编辑操作。
如果还需要对缓冲区中的语句进行编辑操作,则可以使用SQL*Plus语句实
现。
Oracle数据库提供了一些SQL*Plus语句,这些语句由相应的命令实
现,例如APPEND(可以简写为A)命令。
如下表所示。
SQL*Plus语句
命令说明
A[PPEND]text将text附加到当前行之后
C[HANGE]/old/new将当前行中的old替换为new
CL[EAR]BUFF[ER]清除缓存区中的所有行
I[NPUT]text插入指定的文本text
DELmn删除从第m行到第n行之间的命令行
L[IST]n列出第n行
R[UN]或/显示缓冲区中保存的语句,并运行这些语句
n将第n行作为当前行
ntext使用text文本替代第n行信息
0text在第一行之前插入text文本
创建简单报表
报表
所谓报表就是用表格、图表等格式来动态显示数据。
计算机上的报表的
主要特点是数据动态化,格式多样化,并且实现报表数据和报表格式的完
全分离,用户可以只修改数据,或者只修改格式。
为报表设置页眉和页脚
命令说明
TTI[TLE][printspec[text|variable]
指定出现在报表中每一个页面顶
...]|端的页眉。
其中printspec的可选
[OFF|ON]值有LEFT、CENTER、RIGHT、
BOLD、FORMATtext、COLn、
S[KIP][n]和TABn。
ON选项表示
启用设置;OFF选项表示取消设
置。
还可以带有用户变量(内容由系统来维护),如SQL.PNO页
号、SQL.LNO行号等
BTI[TLE][printspec[text|variable]
指定出现在报表中每一个页面底
...]|
端的页脚
[OFF|ON]
计算小计
BREAK命令和COMPUTE命令
在执行查询操作或创建报表时,可以使用BREAK和COMPUTE命令,用
来对输出的结果进行统计计算。
其中使用BREAK命令,可以让SQL*Plus根
据列值的范围分隔输出结果,可以使得重复的列值不进行显示;COMPUTE
子句可以让SQL*Plus计算一列的值,并在最后输出显示。
用法如下:
BRE[AK][ONcolumn_name]SKIPn
COMP[UTE]functionLABELlabelOFcolumn_nameON
break_column_name
语法说明如下:
column_name表示对哪一列执行操作。
SKIPn表示在指定列的值变化之前插入n个空行。
function表示执行的操作,例如SUM(求和)、MAXIMUM(最大值)、MINIMUM(最小值)、AVG(平均值)、COUNT(非空值的列数)、NUMBER
(行数)、VARIANCE(方差)以及STD(均方差)等。
LABEL指定显示结果时的文本信息。
格式化列的显示效果
COLUMN命令可以对列的显示效果,包括列标题和列数据,进行
格式化。
该命令的语法如下:
COL[UMN][{column_name|ALI[AS]alias}[options]]
语法说明如下:
column_name指定列名。
ALIASalias指定要格式化的列的别名。
options指定用于格式化列或别名的一个或者多个选项。
OPTION选项
选项说明
FOR[MAT]format将列或列名的显示格式设置为由format字符串指定的格
式,format可以使用的格式如下表
HEA[DING]text设置由text字符串指定的列标题
JUS[TIFY][{LEFT|
CENTER|RIGHT}]
将列的输出信息设置为左对齐、居中对齐或右对齐
WRA[PPED]在输出结果中将一个字符串的末尾换行显示。
该选项可
能导致单个单词跨越多行
WOR[D_WRAPPED]与WRAPPED选项类似,但是单个单词不会跨越多行
CLE[AR]清除列的格式化
TRUNCATED删除第一行的字符串
NULLtext指定列为空值时显示的内容
PRINT显示列标题
NOPRINT隐藏列标题
format格式元素
元说明举例
素
An为[VAR]CHAR类型的列内容设A5
置宽度。
如果内容超过指定
的宽度,则内容自动换行
9设置NUMBER列的显示格式999999
$浮动的货币符号$9999
L本地货币符号L9999
.小数点位置9999.99
千位分隔符9,999
SQL*Plus命令
命令说明
HELP[topic]查看命令的使用方法,topic表示需要
查看的命令名称。
例如:
HELP