Oracle09软件复习靠谱版.docx
- 文档编号:7179714
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:16
- 大小:74.95KB
Oracle09软件复习靠谱版.docx
《Oracle09软件复习靠谱版.docx》由会员分享,可在线阅读,更多相关《Oracle09软件复习靠谱版.docx(16页珍藏版)》请在冰豆网上搜索。
Oracle09软件复习靠谱版
Oracle复习资料
题型:
一、填空题:
10*2’=20'
二、单选题:
15*1'=15'
三、简答题:
3*5'=15'
四、看程序写结果:
5*3'=15'
五、编程题:
共35'
知识点
1.Oracle10g中g表示网格计算,什么是网格计算
g(grid)表示网格计算,网格计算通过利用大量异构计算机(通常为桌面)的未用资源(CPU周期和磁盘存储),将其作为嵌入在分布式电信基础设施中的一个虚拟的计算机集群,为解决大规模的计算问题提供了一个模型。
核心是“资源与服务”,根本目标是“资源共享”。
→Oracle8i/Oracle9i:
其中i表示internet
2.Oracle服务器的组成,他们之间的区别是什么?
数据库:
磁盘上的程序文件+数据文件
实例:
计算机内存中处于运行状态的数据库程序,以及为这些程序分配的内存空间。
Oracle中的一个实例只能连接一个逻辑上的“数据库”
Oracle数据库结构:
物理结构、内存结构、逻辑结构
3.ORACLE数据库物理结构包括哪几类文件,归档非归档
参数文件、控制文件(CTL)、日志文件(LOG)、数据文件(DBF)
参数文件:
1)实例和数据库的配置参数表。
设置内存中的SGA(系统全局区)大小、指定数据库控制文件名称及路径,定义各种操作参数等。
2)将初始化参数永久保存在服务器磁盘上。
3)只在建立数据库或启动实例时才被访问。
4)是一个可编辑的文本文件,在修改该文件之前必须关闭实例。
控制文件:
1)至少有一个控制文件,建议两个或两个以上
2)通过控制文件保持数据库完整性以及决定恢复数据时使用哪些重做日志。
数据库名称及唯一标识
数据库的创建时间
数据文件的名称、位置及大小
重做日志文件的名称、位置及大小
表空间名称
检查点信息、日志序列号等数据库恢复所需的同步信息。
数据文件:
用于存放所有的数据库数据,如表、索引等。
1)一个数据文件只与一个数据库相联系;数据文件大小是动态可以改变的;数据文件结合在一起形成表空间。
2)有两种类型的数据:
用户数据和系统数据
3)用户数据:
用于应用软件的数据,带有应用软件的所有信息。
是用户存放在数据库中的信息。
4)系统数据:
用来管理用户数据和Oracle数据库本身的数据。
※日志文件:
●※重做日志文件:
用于记录数据库的修改操作,可用于数据库的恢复。
两个或两个以上日志文件,用于镜像。
◆文件的配置和大小会影响性能,重做日志与数据文件分开存放。
◆重做日志文件组以循环方式进行写操作。
◆ARCHIVELOG(归档)
Ø当所有日志组都写满之后,又回到第一组之前,该组中原有数据写入归档日志,存入磁盘。
Ø备份时必选。
可自动归档重做日志文件。
Ø是非活动重做日志的备份。
Ø数据库只有处于ArchiveLog模式时才会生成归档日志,并且每次日志切换都会生成归档日志。
Ø执行介质恢复(例如数据文件意外丢失),则必须要用到归档日志。
◆NOARCHIVELOG(非归档)
通常默认都为非归档模式。
当所有日志组都写满之后,又回到第一组之前,该组中原有数据被覆盖。
日志中只保留最后数据。
ARCHIVELOG(归档)当所有日志组都写满之后,又回到第一组之前,该组中原有数据写入归档日志,存入磁盘。
NOARCHIVELOG(非归档)通常默认都为非归档模式。
当所有日志组都写满之后,又回到第一组之前,该组中原有数据被覆盖。
日志中只保留最后数据。
4.两种内存结构SGA和PGA,SGA的组成部分和功能
●系统全局区称SGA(SystemGlobalArea)当数据库服务器上的一个数据库启动时,Oracle将分配一块内存区间,叫做系统全局区(SGA),并启动一个或多个Oracle后台进程,SGA被所有的后台进程共享。
●组成:
DBBuffer、RedoBuffer、大共享区、共享池、固定SGA
1)DBBuffer:
默认缓存池、保持缓存池、再生缓存池。
Ø保持缓存池:
对于需要在内存中长期保存的频繁访问的数据,在关闭数据库前一直保留。
Ø再生缓存池:
需要尽快从内存中排除的对象。
Ø缓存池可设定相关大小。
2)共享池:
库缓存(共享SQL区、PL/SQL区)、字典缓存区
Ø共享池的规模对数据库性能有重要的影响。
Ø共享SQL区:
保留SQL语句的解释版本,以便于再次使用时不再重新解释,提高进程速度。
ØPL/SQL区:
保留PL/SQL的过程、函数等程序单元的编译版本,以便所有用户都能够共享。
Ø字典缓存区:
用于缓存数据字典信息。
3)Redo日志缓存区:
通过一个日志的书写进程对日志文件进行操作,先进先出。
4)大共享区:
选择多线程服务器时需要。
5)固定SGA:
不能设定大小,由Oracle独立控制。
5.六个必需的后台进程(进程结构)
DBWR数据库写进程
LGWR日志查点写进程
CKPT检查点进程
SMON系统监控进程
PMON进程监控进程
RECO恢复进程
6.Oracle数据库逻辑结构由几部分组成及它们之间的关系
块block、盘区extent、段segement、表空间tablespace
(1)、表空间与数据文件的对应关系为1:
n
(2)、段与表空间的对应关系为n:
1,但段与数据文件并不一一对应。
(3)、Oracle的基本存储单位是块。
(4)、安装全局数据库之前,设定块大小,Oracle的块大小一定是操作系统的整数倍。
7.每个实例至少有5个服务分别是什么?
1)OracleDBConsoleorcl:
Oracle数据库控制台服务,orcl是Oracle例程标识,默认的例程为orcl。
在运行EnterpriseManager10g(Oracle企业管理器)时,需要启动此服务。
此服务被默认设置为自动启动。
2)OracleJobSchedulerORCL:
Oracle作业调度进行,ORCL是Oracle例程标识。
此服务被默认设置为禁用。
3)OracleOraDb10g_home1iSQL*Plus:
iSQL*Plus应用服务,默认设置为自动启动。
4)OracleOraDb10g_home1TNSListener:
监听器服务,服务只有在数据库需要远程访问时才需要。
此服务被默认设置为自动启动。
5)OracleServiceORCL:
数据库服务,这个服务会自动地启动和停止数据库。
ORCL是Oracle例程标识。
此服务被默认设置为自动启动。
8.Sqlplus命令
1)Run、/都可以运行缓冲区中的sql语句。
Run在执行缓冲区语句前,会显示缓冲区的内容。
2)Set命令Setlinesize300;Setpagesize30;
3)Ed(it)命令*.sql
4)@或start执行脚本命令
5)exit(或quit)退出
connscott/tiger
connsys/change_on_installassysdba连接不同用户
启动数据库实例:
startup;
关闭数据库实例:
shutdownimmediate;
一旦关闭之后,用户无法直接连接sqlplusw,此时可以先使用“/nolog”登录,之后使用管理员登录。
9.单行函数
字符函数
UPPER(字符串|列):
将输入的字符串变为大写返回;
LOWER(字符串|列):
将输入的字符串变为小写返回;
INITCAP(字符串|列):
开头首字母大写;
LENGTH(字符串|列):
求字符串的长度;
REPLACE(字符串|列):
进行替换;
SUBSTR(字符串|列,开始点[,长度]):
字符串截取;
数字函数
ROUND(数字|列[,保留小数的位数]):
四舍五入的操作
TRUNC(数字|列[,保留小数的位数]):
舍弃指定位置的内容,不进位;
MOD(数字1,数字2):
取模,取余数
日期函数
当前日期可以使用“sysdate”
日期-数字=日期,表示若干天之前的日期
日期-日期=数字,表示两个日期间的天数,但是肯定是大日期-小日期
LAST_DAY(日期):
求指定日期的最后一天;
NEXT_DAY(日期,星期数):
求出下一个指定星期x的日期;
ADD_MONTHS(日期,数字):
求出若干月之后的日期;
MONTHS_BETWEEN(日期1,日期2):
求出两个日期之间经历的月份;
转换函数(核心)
TO_CHAR(字符串|列,格式字符串):
将日期或者数字变为字符串显示;
TO_DATE(字符串,格式字符串):
将字符串变为DATE数据显示;
TO_NUMBER(字符串):
将字符串变为数字显示
→左、右连接
(+)=:
表示右连接
=(+):
表示左连接
10.常用数据类型有哪些
11.PL/SQL下定义常量、变量、特殊类型的定义和使用、函数参数有哪几类、约束有哪几类、导入导出命令
变量类型:
v1char;没有给出长度,所以只能保存一个字符,超过了则会出错
v2varchar2(10);v2最多只能保存10个字符。
如果不写长度会出错,字符串长度限制在范围(1...32767)
v3number;v3保存的数字范围非常大,几乎可以认为是没有限制的。
v4number(5);v4最多能够保存5位整数。
如果有小数,Oracle会自动四舍五入。
v5number(5,2);v5最多能够保存3位整数,2位小数。
如果小数位不止2位,则Oracle会自动四舍五入。
v6date;可以直接保存sysdate的值;如果是指定日期,则要用to_date来转化。
v7constantnumber:
=100;定义v7为常量,定义时就必须给定值。
然后在程序中就不能再对v7进行赋值了
v8numberdefault10;定义v8时就给定默认值10。
注意:
number类型变量的默认值不是0,而是NULL。
v9numbernotnull:
=1000.50;定义v9变量不能为空。
三种参数模式
in是参数的默认模式,这种模式就是在程序运行的时候已经具有值,在程序体中值不会改变。
out模式定义的参数只能在过程体内部赋值,表示该参数可以将某个值传递回调用他的过程或函数。
inout参数允许调用程序通过它向过程传递初始数据,并且可返回经过程修改后的数据
约束
A)非空约束
Createtablemember(Midnumber,Namevarchar2(50)notnull);
B)唯一键约束ConstraintUK_属性名unique(属性名)
Createtablemember(Midnumber,Namevarchar2(15)notnull,Emailvarchar2(15)unique);
C)※主键约束Constraintpk_midprimarykey(mid)
主键约束=非空约束+唯一约束
Createtablemember(Midnumberprimarykey,Namevarchar2(50)notnull);
D)检查约束
Createtablemember(
Midnumber,
Namevarchar2(50)notnull,
Sexvarchar2(10)notnull,
Agenumber(3),
Constraintpk_midprimarykey(mid),
Constraintck_sexcheck(sexin(‘男’,’女’)),
Constraintck_agecheck(agebetween0and250)
);
E)外键约束
Constraintfk_midforeignkey(mid)referencesmember(mid)
2)导入导出命令
数据库备份:
exp数据库恢复:
imp
12.游标的四个属性
%FOUND布尔型属性,当最近一次读记录时成功返回,则值为TRUE;
%NOTFOUND布尔型属性,与%FOUND相反;
%ISOPEN布尔型属性,当游标已打开时返回TRUE;
%ROWCOUNT数字型属性,返回已从游标中读取的记录数。
13.常见预定义异常有哪些、如何在程序中使用异常
错误号
异常错误信息名称
说明
ORA-0001
Dup_val_on_index
试图破坏一个唯一性限制
ORA-0051
Timeout-on-resource
在等待资源时发生超时
ORA-0061
Transaction-backed-out
由于发生死锁事务被撤消
ORA-1001
Invalid-CURSOR
试图使用一个无效的游标
ORA-1012
Not-logged-on
没有连接到ORACLE
ORA-1017
Login-denied
无效的用户名/口令
ORA-1403
No_data_found
SELECTINTO没有找到数据
ORA-1422
Too_many_rows
SELECTINTO返回多行
ORA-1476
Zero-divide
试图被零除
ORA-1722
Invalid-NUMBER
转换一个数字失败
ORA-6500
Storage-error
内存不够引发的内部错误
ORA-6501
Program-error
内部错误
ORA-6502
Value-error
转换或截断错误
ORA-6504
Rowtype-mismatch
缩主游标变量与PL/SQL变量有不兼容行类型
ORA-6511
CURSOR-already-OPEN
试图打开一个已存在的游标
异常处理部分一般放在PL/SQL程序体的后半部,结构为:
EXCEPTION
WHENfirst_exceptionTHEN
WHENsecond_exceptionTHEN
WHENOTHERSTHEN
END;
14.PL/SQL下权限的赋予与取消
ØGrant权限1,权限2……to用户名;
ØGrantconnect,resourcetotest;
◆Connect角色:
临时用户或不需要建表的用户会赋予connect角色,可以建表、视图、序列、同义词、session等。
◆Resource角色:
更可靠和正式的数据库用户可以授予resource角色。
为用户提供权限创建属于自己的表、视图、序列、同义词、过程、触发器等。
ØRevoke权限on用户.表名称from用户;
补充:
1、删除表数据Deletetabletable_name;
Truncatetabletable_name;截断表(不可用回滚恢复)
2、闪回技术:
删除整个表Droptabletable_name;
闪回(恢复)Flashbacktabletable_nametobeforedrop;
彻底删除表(无法闪回)Droptabletable_namepurge;
3、用户管理
创建用户的语法:
Createuser用户名identifiedby密码;
修改用户密码:
Alteruser用户名identifiedby密码;
赋予用户权限Grantconnect,resourceto用户;
回收用户权限Revoke权限on用户.表名称from用户;
4、数据库备份与恢复
数据库备份:
exp
数据库恢复:
imp
数据库备份文件EXPDAT.DMP
编程题:
函数
触发器
基本查询语句
练习题
1.列出所有部门的详细信息和部门人数
SQL>selectd.*,count(e.deptno)fromempe,deptd
2wheree.deptno(+)=d.deptno
3groupbyd.deptno,d.dname,d.loc;
2.列出所有员工的年工资、所在部门名称,按年薪升序排序
SQL>selecte.ename,e.sal*12,d.dnamefromempe,deptd
2wheree.deptno=d.deptno
3orderbye.sal*12;
3.查出每个员工的上级主管及所在部门名称,并要求这些主管的薪水超过3000
SQL>selecte.ename,m.enamemanager,d.dname,m.sal
2fromempe,empm,deptd
3wheree.empno=m.empnoandm.deptno=d.deptno
4andm.sal>3000;
4.求出部门名称中带‘S’字符的部门员工的工资合计、部门人数。
SQL>selectd.dname,sum(e.sal),count(e.deptno)
2fromempe,deptd
3wheree.deptno(+)=d.deptno
4andd.dnamelike'%S%'
5groupbyd.dname;
5.列出部门名称和这些部门的员工信息(数量、平均工资),同时列出那些没有员工的部门。
SQL>selectd.*,count(e.deptno),avg(e.sal)
2fromempe,deptd
3wheree.deptno(+)=d.deptno
4groupbyd.deptno,d.dname,d.loc;
6.列出在部门“SALES”工作的员工姓名、基本工资、雇佣日期、部门名称,假定不知道销售部的部门编号。
SQL>selecte.ename,e.sal,e.hiredate,d.dname
2fromempe,deptd
3wheree.deptno=d.deptnoandd.dname='SALES';
7.列出公司各个工资等级雇员的数量、平均工资
SQL>selects.grade,s.losal,s.hisal,count(e.empno),avg(e.sal)
2fromempe,salgrades
3wheree.salbetweens.losalands.hisal
4groupbys.grade,s.losal,s.hisal;
8.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金、部门名称
SQL>selecte.empno,e.ename,d.dnamefromempe,deptd
2wheresal>all(selectsalfromempwheredeptno=30)
3ande.deptno=d.deptno;
9.列出受雇日期早于直接上级的所有员工的编号、姓名、部门名称、部门位置、部门人数。
SQL>selecte.empno,e.ename,d.dname,d.loc,p.count
2fromempe,empm,deptd,(
3selectdeptno,count(empno)count
4fromempgroupbydeptno)p
5wheree.mgr=m.empno
6ande.hiredate 7ande.deptno=d.deptno 8ande.deptno=p.deptno; 10.列出所有“clerk”的姓名及其部门名称、部门人数、工资等级。 SQL>selecte.ename,d.dname,e.job,p.count,s.grade 2fromempe,deptd,( 3selectdeptno,count(empno)count 4fromempgroupbydeptno)p,salgrades 5wheree.job='CLERK' 6ande.deptno=d.deptno 7andd.deptno=p.deptno 8ande.salbetweens.losalands.hisal; 11.列出最低薪金大于1500的各种工作及从事此工作的全部雇员人数及所在部门名称、位置、平均工资。 SQL>selectp.job,p.count,d.dname,a.avg 2fromdeptd,( 3selecte.jobjob,count(e.empno)count 4fromempegroupbye.job 5havingmin(e.sal)>1500)p,empe,( 6selectdeptno,avg(sal)avg 7fromempgroupbydeptno)a 8wheree.deptno=d.deptno 9ande.job=p.job 10ande.deptno=a.deptno; 12.列出薪金高于公司平均薪金的所有员工、所在部门、上级领导、公司的工资等级。 SQL>selecte.ename,e.job,e.sal,d.dname,d.loc,m.ename,s.grade 2fromempe,deptd,empm,salgrades 3wheree.sal>( 4selectavg(sal)fromemp) 5ande.deptno=d.deptno 6ande.mgr=m.empno 7ande.salbetweens.losalands.hisal; 13.列出与SCOTT从事相同工作的所有员工及部门名称、部门人数 SQL>selecte.ename,e.job,d.dname,p.count 2fromempe,deptd,( 3selectdeptno,count(empno)count 4fromempgroupbydeptno)p 5wheree.job=( 6selectjobfromempwhereename='SCOTT') 7ande.deptno=d.deptnoandp.deptno=e.deptno; 14.列出在每个部门工作的员工数量、平均工资和平均服务期限 SQL>selectd.dname,count(e.empno)员工数量, 2avg(sal)平均工资, 3avg(months_between(sysdate,e.hiredate)/12)平均服务期限 4fromempe,deptd 5wheree.deptno
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle09 软件 复习 靠谱版