2022年Oracle数据库重点 .pdf
考试题型:一、单选(2*15)二、填空(1*10)三、设计(4*10)四、问答(5*2)四、问答题:1简述 Oracle物理存储结构的主要存储部分以及各部分的主要功能。数据文件用于存储数据库中的所有数据;控制文件用于记录和描述数据库的物理存储结构信息;重做日志文件用于记录外部程序(用户)对数据库的修改操作;初始化参数文件用于设置数据库启动时的参数初始值;跟踪文件用于记录用户进程、数据库后台进程的运行情况;归档文件用于保存已经写满的重做日志文件口令文件用于保存具有SYSDBA,SYSOPER 权限的用户名和SYS 用户口令。2简述 Oracle操作模式有哪两种,它们有什么关系?在 Oracle 数据库中,数据库的操作模式分为专用服务器(DELICATED SERVER)模式和多线程服务器(MULTITHREADED SERVER)模式两种。其中,在专用服务器模式中,用户进程与服务器进程之间是一对一的关系,即一个服务器进程只为一个用户进程服务;而在多线程服务器模式中,用户进程与服务器进程之间是多对一的关系,即一个服务器进程可以为多个用户进程提供服务。3说明数据库模式与用户之间的区别?数据库模式与用户之间的区别在于:用户是数据库的使用者和管理者,用户具有帐户状态、访问权限和操作权限等属性。模式是一系列逻辑数据结构或对象的集合,是数据库中对象的组织和管理单位。4说明数据库的启动过程。数据库启动分为三个步骤:创建并启动数据库实例、装载数据库和打开数据库。数据库启动时首先根据初始化参数文件创建并启动实例,然后根据控制文件装载数据库的数据文件和重做日志文件,最后打开数据文件和重做日志文件,从而启动数据库。三、设计题:1.P111(1)为USERS 表空间添加一个数据文件,文件名为 userdata03.dbf,大小为 50MB。alter tablespace users add datafile d:Oracleuserdata03.dbfsize 50M;(2)为 EXAMPLE表空间添加一个数据文件,文件名为 example02.dbf,大小为 20MB。alter tablespace example add datafile d:Oracleuserdata02.dbfsize 20M;(7)为数据库添加一个重做日志文件组,组内包含两个成员文件,分别为redo4a.log和 redo4b.log,大小分别为 5MB。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 6 页 -alter database add logfile group 4(d:Oracleredo4a.log,d:Oracleredo4b.log)size 5M;(8)为新建的重做日志文件组添加一个成员文件,名称为redo4c.log。alter database add logfile member d:Oracleredo4c.log to group 4;P130(1)使用 SQL命令创建一个本地管理方式下的自动分区管理的表空间USERTBS1,其对应的数据文件大小为20MB。create tablespace USERTBS1 datafile d:OracleUSERTBS1.dbf size 50M extent management local autoallocate;(2)使用 SQL命令创建一个本地管理方式下的表空间USERTBS2,要求每个分区大小为 512KB。create tablespace USERTBS2 datafile d:OracleUSERTBS2.dbf size 50M extent management local uniform size 512K;(5)使用 SQL命令创建一个本地管理方式下的临时表空间TEMPTBS,并将该表空间作为当前数据库实例的默认临时表空间。create temporary tablespace TEMPTBS tempfile d:OracleTEMPTBS.dbf size 20M extent management local uniform size 16K;2.P203(1)按下列表结构利用SQL语句创建 class、student 两个表。class 列名数据类型约束备注CNO NUMBER(2)主键班号CNAME VARCHAR2(20)班名NUM NUMBER(3)人数Student 列名数据类型约束备注SNO NUMBER(4)主键学号SNAME VARCHAR2(10)唯一姓名SAGE NUMBER 年龄SEX CHAR(2)性别CNO NUMBER(2)班级号create table class(CNO number(2)primary key,CNAME varchar2(20)NUM number(3);create table student(SNO number(4)primary key,名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 6 页 -SNAME varchar2(10)unique,SAGE number,SEX char(2),CNO number(2);(2)为 student 表添加一个可以延迟的外键约束,其 CNO 列参照 class 表的 CNO列。alter table student add constraint fk_cno foreign key(cno)references class(cno)deferrable;(3)为 student 表的 SAGE 列添加一个检查约束,保证该列取值在0100之间。alter table student add constraint ck_sage check(sage0 and sage=100);(4)为 student 表的 SEX列添加一个检查约束,保证该列取值为“M”或“F”,且默认值为“M”。alter table student add constraint ck_stu check(sex=M or sex=F)modify sex default M 3.P230(1)创建一个口令认证的数据库用户usera_exer,口令为usera,默认表空间为USERS,配额为 10MB,初始帐户为锁定状态。create user usera_exer identified by usera default tablespace users quota 10M on users account lock;(2)创建一个口令认证的数据库用户usera_exer,口令为 userb。create user userb_exer identified by userb;(3)为 usera_exer用户授予 CREATE SESSION 权限、scott.emp的 SELECT 权限和 UPDATE 权限。同时允许该用户将获得的权限授予其他用户。conn scott/tiger grant select,update on scott.emp to usera_exer with grant option;(4)将用户的 usera_exer的帐户解锁。conn system/manager alter user usera_exer account unlock;(8)创建角色 rolea 和 roleb,将 CREATE TABLE 权限、scott.emp的 INSERT 权限和 DELETE 权限授予 rolea;将 CONNECT,RESOURCE 角色授予 roleb。create role rolea;create role roleb;grant create table to rolea;conn scott/tiger grant insert,delete on scott.emp to rolea;conn system/manager grant connect,resource to roleb;(9)将角色 rolea、roleb 授予用户 usera_exer。grant rolea,roleb to usera_exer;(10)屏蔽用户 usera_exer的 roleb 角色。alter user usera_exer default role all except roleb;名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 6 页 -4.P363(1)编写一个 PL/SQL 块,输出所有员工的员工名、员工号、工资和部门号。Set serveroutput on;DECLARE CURSOR c_emp IS select*from emp;BEGIN FOR v_emp IN c_emp LOOP DBMS_OUTPUT.PUT_LINE(v_emp.ename|v_emp.empno|v_emp.deptno|v_emp.sal);END LOOP;END;/(2)查询名为”SMITH”的员工信息,并输出其员工号、工资、部门号。如果该员工不存在,则插入一条新纪录,员工号为 2007,员工名为”SMITH”的员工号、工资和部门号。DECLARE v_emp emp%ROWTYPE;BEGIN SELECT*INTO v_emp FROM EMP WHERE ename=SMITH;DBMS_OUTPUT.PUT_LINE(v_emp.empno|v_emp.sal|v_emp.deptno);EXCEPTION WHEN NO_DATA_FOUND THEN INSERT INTO EMP(EMPNO,ENAME,SAL,DEPTNO)VALUES(2007,SMITH,1500,10);WHEN TOO_MANY_ROWS THEN FOR v IN(SELECT*FROM EMP WHERE ENAME=SMITH)LOOP DBMS_OUTPUT.PUT_LINE(v.empno|v.sal|v.deptno);END LOOP;END;/(3)创建一个存储过程,以员工号为参数,输出该员工的工资。CREATE OR REPLACE PROCEDURE SHOWSAL(p_empno emp.empno%type)AS v_sal emp.sal%TYPE;BEGIN SELECT sal INTO v_sal FROM emp WHERE empno=p_empno;DBMS_OUTPUT.PUT_LINE(v_sal);END;名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 6 页 -/begin showsal(7844);end;/(5)创建一个函数,以员工号为参数,返回该员工的工资。CREATE OR REPLACE FUNCTION fun_sal(p_empno emp.empno%type)RETURN emp.sal%TYPE ASv_sal emp.sal%TYPE;BEGIN SELECT sal INTO v_sal FROM EMP WHERE empno=p_empno;RETURN v_sal;END;/(7)创建一个函数,以员工号为参数,返回该员工所在部门的平均工资。CREATE OR REPLACE FUNCTION fun_avg_sal(p_empno emp.empno%type)RETURN emp.sal%type AS v_sal emp.sal%type;BEGIN SELECT AVG(SAL)INTO V_SAL FROM EMP WHERE DEPTNO=(select deptno from emp where empno=p_empno);RETURN V_SAL;END;/选择填空题1.13 5.2 6(包括哪些文件)7.2(表空间、区、段)8.4(两种模式)9.2.3 名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 6 页 -10.1、10.2 11.2.2、11.3.2、11.3.3、11.4.2、11.4.5、11.5.1、12(常用命令、类型)13.2.1、13.2.2、13.2.4 15.4 名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 6 页 -