Oracle09软件复习靠谱版.docx

上传人:b****1 文档编号:2444874 上传时间:2023-05-03 格式:DOCX 页数:18 大小:73.86KB
下载 相关 举报
Oracle09软件复习靠谱版.docx_第1页
第1页 / 共18页
Oracle09软件复习靠谱版.docx_第2页
第2页 / 共18页
Oracle09软件复习靠谱版.docx_第3页
第3页 / 共18页
Oracle09软件复习靠谱版.docx_第4页
第4页 / 共18页
Oracle09软件复习靠谱版.docx_第5页
第5页 / 共18页
Oracle09软件复习靠谱版.docx_第6页
第6页 / 共18页
Oracle09软件复习靠谱版.docx_第7页
第7页 / 共18页
Oracle09软件复习靠谱版.docx_第8页
第8页 / 共18页
Oracle09软件复习靠谱版.docx_第9页
第9页 / 共18页
Oracle09软件复习靠谱版.docx_第10页
第10页 / 共18页
Oracle09软件复习靠谱版.docx_第11页
第11页 / 共18页
Oracle09软件复习靠谱版.docx_第12页
第12页 / 共18页
Oracle09软件复习靠谱版.docx_第13页
第13页 / 共18页
Oracle09软件复习靠谱版.docx_第14页
第14页 / 共18页
Oracle09软件复习靠谱版.docx_第15页
第15页 / 共18页
Oracle09软件复习靠谱版.docx_第16页
第16页 / 共18页
Oracle09软件复习靠谱版.docx_第17页
第17页 / 共18页
Oracle09软件复习靠谱版.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Oracle09软件复习靠谱版.docx

《Oracle09软件复习靠谱版.docx》由会员分享,可在线阅读,更多相关《Oracle09软件复习靠谱版.docx(18页珍藏版)》请在冰点文库上搜索。

Oracle09软件复习靠谱版.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2