Oracle教案Word格式.docx
《Oracle教案Word格式.docx》由会员分享,可在线阅读,更多相关《Oracle教案Word格式.docx(110页珍藏版)》请在冰点文库上搜索。
sys
超级管理员
change_on_install
所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。
sys用户拥有dba,sysdba,sysoper等角色或权限,是oracle权限最高的用户。
system
普通管理员
manager
用于存放次一级的内部数据,如oracle的一些特性或工具的管理信息。
system用户拥有普通dba角色权限。
可用来创建其他用户。
scott
普通用户(练习常用)
tiger
在默认情况下从Oracle10g开始,scott不能登陆。
被禁用了。
需要手工解锁。
3.安装后的注意事项:
Oracle安装完成后至少要启动两个服务:
OracleOraDb11g_home1TNSListener:
监听器,监听程序的服务进程。
OracleServiceORCL:
主服务,是Oracle数据库实例的服务进程。
建议将启动类型改为手动。
1.4Oracle的常用管理工具
1.使用SQL*Plus
在Oracle中,用户对数据库的操作主要是通过SQL*Plus工具来实现的。
应用举例:
(1).查看当前连接用户
SQL>
showuser
(2).查看全局数据库名
SELECT*FROMglobal_name;
(4).清空屏幕
clscr;
2.使用OracleEnterpriseManager(OEM)
OracleEnterpriseManager(OEM)提供了基于Web界面的、可管理单个数据库的工具。
使用步骤:
(1).启动OracleDBConsoleorcl服务
(2).启动浏览器,输入OEM的URL地址(https:
//主机名:
1158/em),或者直接在【开始】菜单的Oracle程序组中选择DatabaseControl–orcl命令即可。
(3).注意事项:
只能用sys和system用户登陆,sys必须用SYSDBA身份登陆。
3.使用DBCA创建数据库
如果在安装Oracle时选择仅安装数据库服务器软件,而不创建数据库,就需要安装后手动创建数据库。
如果在系统中已经存在Oracle数据库,为了充分利用服务器的资源,建议不要再创建一个数据库。
DBCA(DatabaseConfigurationAssistant)是一个图形化用户界面的工具,DBA通过它可以快速、直观地创建数据库。
选择【开始】|【程序】|Oracle-OraDb11g_home1|【配置和移置工具】|DatabaseConfigurationAssistant命令,打开DBCA界面。
用户只需要根据DBCA的提示逐步进行设置,就可以根据相应配置创建数据库。
第2章SQL*Plus命令
2.1用户管理命令
1.更改用户登录
命令格式:
conn用户名/密码[ASSYSDBA]
注意:
如果连接的是超级管理员(SYS),必须写上ASSYSDBA
2.用户加锁和解锁
加锁:
alteruser用户名accountlock;
解锁:
alteruser用户名accountunlock;
3.更改用户密码
alteruser用户名identifiedby密码;
注意,如果忘记所有用户的密码,可启动SQL*Plus,输入以下命令:
conn/assysdba
2.2其他常用命令
1.help命令
SQL*Plus有许多命令,而且每个命令都有大量的选项,要记住每一个命令的所有选项是很困难的。
SQL*Plus提供了内建的帮助系统,可以使用HELP命令查询相关的命令信息。
help命令名
示例:
查看conn命令的帮助信息
helpconn;
查看SQL*Plus的命令清单
helpindex;
查看SQL*Plus的关键字清单
helpreservewords;
2.describe命令
describe命令可以缩写为desc,用来列出表或视图各个列的名称以及属性。
descobject_name;
查看scott用户的emp表的结构
descscott.emp;
3.setlinesize命令
系统默认每行打印80个字符,当SQL*Plus输出linesize指定数量的字符后,随后的数据就会折叠到下一行显示。
setlinesizenumber
showlinesize;
setlinesize800;
4.setpagesize命令
当SQL*Plus执行查询语句时,setpagesize命令可以设置一页显示的行数。
setpagesizenumber
showpagesize;
setpagesize30;
5.pause命令
如果在SQL*Plus中运行的查询语句可以返回多行数据,以至于无法在窗口中一次显示完,输出窗口会快速滚动显示。
可以设置环境变量pause为on来控制显示完一页后暂停显示,直到按回车键才继续显示下一页数据。
pause选项还可以设置暂停后显示的字符串,以便提示用户。
setpauseon
;
SQL>
setpause‘按回车键继续’;
6.@命令
用于执行脚本文件。
@文件名;
需写文件路径;
sql文件的后缀可以不写。
7.继续使用上次命令
/
2.3常用数据字典视图
数据字典是Oracle数据库的核心组件,是数据库中的所有对象信息的知识库,提供了数据库结构、数据库对象空间分配和数据库用户等有关的信息。
任何数据库用户都无法对数据字典中的内容进行修改,但可以查看数据字典中的内容。
数据字典中的信息通过表和视图的形式组织。
数据字典中的信息实际上保存在基础表中,只有Oracle系统才有权读取和写入基础表。
基础表中存储的信息通常是经过加密处理的。
而视图是一种虚拟表,它本身并不包含数据,用户可以通过数据字典视图来获取信息,而不需访问数据字典表。
数据字典视图分类:
视图类型
说明
USER视图
USER视图的名称以user_为前缀,用来记录用户对象的信息。
例如user_tables视图,它记录用户的表信息
ALL视图
ALL视图的名称以all_为前缀,是USER视图的扩展。
用来记录用户对象的信息以及被授权访问的对象信息。
例如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
所有用户的索引的字段信息
dba_triggers
所有用户的触发器信息
dba_sources
所有用户的存储过程信息
dba_segments
所有用户的段的使用空间信息
dba_extents
所有用户的段的扩展信息
dba_objects
所有用户对象的基本信息
cat
当前用户可以访问的所有基表
tab
当前用户创建的所有基表、视图和同义词等
dict
构成数据字典的所有表的信息
与数据库组件相关的数据字典
数据库组件
数据字典中的表或视图
数据库
v$datafile
记录系统的运行情况
表空间
dba_tablespaces
记录系统表空间的基本信息
dba_free_space
记录系统表空间的空闲空间的信息
控制文件
v$controlfile
记录系统控制文件的基本信息
v$controlfile_record_section
记录系统控制文件中记录文档段的信息
v$parameter
记录系统各参数的基本信息
数据文件
dba_data_files
记录系统数据文件以及表空间的基本信息
v$filestat
记录来自控制文件的数据文件信息
v$datafile_header
记录数据文件头部分的基本信息
段
记录段的基本信息
数据区
记录数据区的基本信息
日志
v$thread
记录日志线程的基本信息
v$log
记录日志文件的基本信息
v$logfile
记录日志文件的概要信息
归档
v$archived_log
记录归档日志文件的基本信息
v$archive_dest
记录归档日志文件的路径信息
数据库实例
v$instance
记录实例的基本信息
v$system_parameter
记录实例当前有效的参数信息
内存结构
v$sga
记录SGA区的大小信息
v$sgastat
记录SGA的使用统计信息
v$db_object_cache
记录对象缓存的大小信息
v$sql
记录SQL语句的详细信息
v$sqltext
记录SQL语句的语句信息
v$sqlarea
记录SQL区的SQL基本信息
后台进程
v$bgprocess
显示后台进程信息
v$session
显示当前会话信息
常用动态性能视图
视图名称
v$fixed_table
显示当前发行的固定对象的说明
显示当前实例的信息
v$latch
显示锁存器的统计数据
v$librarycache
显示有关库缓存性能的统计数据
v$rollstat
显示联机的回滚段的名字
v$rowcache
显示活动数据字典的统计
显示有关系统全局区的总结信息
显示有关系统全局区的详细信息
v$sort_usage
显示临时段的大小及会话
显示SQL区的SQL信息
显示在SGA中属于共享游标的SQL语句内容
v$stsstat
显示基本的实例统计数据
v$system_event
显示一个事件的总计等待时间
v$waitstat
显示块竞争统计数据
1.查看所有用户
SELECTusername,account_statusFROMdba_users;
*OPEN表示账户为解锁状态;
EXPIRED表示账户为过期状态(需要设置口令才能解除此状态);
LOCKED表示账户为锁定状态。
2.查看SID
SELECTinstance_nameFROMv$instance;
3.查看当前用户所有的表信息
SELECT*FROMtab;
*table(表)view(视图)synonym(别名,与视图类似)
4.查看所有用户的表信息
SELECTtable_name,ownerFROMdba_tables;
5.查看指定用户的表信息
SELECTtable_name,ownerFROMdba_tableswhereowner=’SCOTT’;
第3章SQL语句基础
scott用户有4个案例表,可在日常练习中使用。
3.1Oracle内置字段数据类型
1.字符型
CHAR型:
定长字符串,短则用空格填充,长则出错。
VARCHAR2型:
变长字符串。
字段长度根据实际字符串长度自动调整,不用空格填充。
2.数值型NUMBER(PRECISION,SCALE)
精度PRECISION指定所有数字位的个数,范围SCALE指定小数的位数,两个参数均是可选的。
如果插入的字段数据超过指定位数,将自动四舍五入。
3.日期时间数据类型DATE
可以存储日期和时间的组合数据。
ORACLE默认的日期格式是DD-MON-YY。
4.LOB数据类型
用于大型的、未被结构化的数据,如二进制文件、图片文件等。
LOB数据类型又分为BLOB、CLOB和BFILE三种。
BLOB类型:
用于存储二进制对象。
如图像、音频、视频。
CLOB类型:
用于存储字符格式的大型对象。
Oracle将数据转换成Unicode格式。
BFILE类型:
将二进制文件作为操作系统文件存储在数据库外部,BFILE类型的字段仅保存二进制文件的指针。
5.ROWID类型
亦称伪列类型,用于保存表中每条记录的物理地址。
每条记录都有唯一的rowid。
ORACLE自动为每个表建立名称为ROWID的字段。
可以对该字段进行查询。
rowid确定了每条记录属于哪一个数据对象、数据文件、块、行。
是基于64位编码的18个字符显示。
其格式如下:
ROWID是隐含的,检索表时不会看到,须显式指定名称。
SELECTrowid,enameFROMemp;
3.2SQL简介
SQL(StructuredQueryLanguage)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL语言分为3类:
1.数据定义语言(DDL)
用来定义和管理数据库中的对象(如表、视图、存储过程、触发器)。
由CREATE、ALTER、DROP命令构成。
2.数据操纵语言(DML)
针对数据库中存储的数据进行相关操作,主要包括增加(insert)、删除(delete)、更新(update)和查询(select)四种操作。
在实际工作中增加、删除和更新所占使用DML比例为20%,而查询所占比例为80%。
3.数据控制语言(DCL)
用来管理用户对指定数据库对象的使用权限。
常用操作有分配(grant)和回收(revoke)。
3.3SELECT语句的用法
在众多SQL语句中,使用频率最高的是SELECT语句,该语句主用于检索数据。
虽然在前面已经使用了一些SELECT语句,但这些使用是零散的、不完整的。
本节将对SELECT语句进行系统地、完整地介绍。
SELECT语句的完整语法格式如下:
SELECT[ALL|DISTINCT
{*|expression|column1_name[,column2_name][,...]}
FROM{table1_name|(subquery)}[alias]
[,{table2_name|(subquery)}[alias],...]
[WHEREcondition]
[CONNECTBYcondition[STARTWITHcondition]]
[GROUPBYexpression[,...]]
[HAVINGcondition[,...]]
[{UNION|INTERSECT|MINUS}]
[ORDERBYexpression[ASC|DESC][,...]]
[FORUPDATE[OF[schema.]table_name|view]column][NOWAIT];
3.3.1检索单表数据
检索单表数据是指从单个表中检索数据,检索的结果都是来自于同一个表中。
在检索数据的过程中,既可以检索所有的列,也可以检索部分列。
数据将按照SELECT子句后面指定的列的顺序显示。
如果使用星号*,则表示检索所有的列,这时数据将按照定义表时指定的列的顺序显示。
SELECT*FROMemp;
SELECTempno,ename,job,sal,deptnoFROMemp;
SELECTenameAS"
姓名"
jobAS"
职位"
hiredateAS"
工作日期"
salAS"
工资"
FROMemp;
SELECTename"
job"
hiredate"
sal"
SELECT'
编号是'
||empno||'
的雇员,姓名是'
||ename||'
的工作是'
||jobFROMemp;
SELECTDISTINCTjobFROMemp;
3.3.2过滤数据
在SELECT语句中可以使用WHERE子句过滤数据,只检索那些满足过滤条件的数据。
通过过滤数据,可以从大量的数据中获取自己所需要的数据。
1.比较运算符
比较操作符
=
等于
<
>
、!
不等于
大于等于
小于等于
大于
小于
ANY
与一个列表中的任何值进行比较
ALL
与一个列表中的所有值进行比较
SELECTename,job,hiredate,salFROMempWHEREempno=7521;
SELECTename,job,hiredate,salFROMemp
WHEREjob=any('
CLERK'
'
ANALYST'
);
2.SQL运算符
SQL运算符
BETWEEN
指定条件在两个值之间,包括边界值
LIKE
匹配的字符样式,一般用于模糊查询
IN
匹配的一个列表值
ISNULL
匹配空值
表中SQL运算符可以与NOT运算符取反处理,例如,NOTLIKE,NOTBETWEEN和ISNOTNULL等。
SELECTempno,ename,job,salFROMempWHEREenameLIKE'
S%'
;
SELECTempno,ename,job,salFROMempWHERE
empnoIN(7369,7521,7789);
empnoNOTIN(7369,7521,7789);
SELECTempno,ename,job,salFROMempWHERE
salBETWEEN1500AND2000;
SELECT*FROMempWHEREcommISNULL;
3.逻辑运算符
使用逻辑运算符可以将简单的条件组合起来。
运算符
NOT
取反,当条件为真时,结果为假;
当条件为假时,结果为真。
AND