当前位置:文档之家› oracle数据库 复习提纲 及其答案详解

oracle数据库 复习提纲 及其答案详解

Oracle数据库复习提纲一、Oracle10g简介1、Oracle10g一共有哪几个版本?Oracle数据库10g标准版1,Oracle数据库10g标准版,Oracle数据库10g企业版,Oracle数据库10g个人版.2、 Oracle10g中的g是什么含义?Oracle 10g的g就代表grid computing。

3、理解Oracle数据库中的方案、数据块、区间、段、表、表空间之间的关系。

Oracle 数据库的逻辑结构包括方案(schema)对象、数据块(data block)、区间(extent)、段(segment)和表空间(tablespace)等。

数据库由若干个表空间组成,表空间由表组成,表由段组成,段由区间组成,区间则由数据块组成4、标准数据块大小由初始参数(DB_BLOCK_SIZE)指定。

5、理解数据库、表空间、数据文件之间的关系。

每个表空间由一个或多个数据文件组成。

数据文件用于在物理上存储表空间中所有逻辑结构的数据。

表空间中数据文件的大小之和就是表空间的存储容量(图中系统表空间存储容量为2MB,用户表空间的存储容量为4MB)。

数据库中表空间的存储容量之和就是数据库的存储容量。

6、叙述Oracle数据库的物理结构。

(每个Oracle数据库都由3类文件组成:数据文件、日志文件、控制文件,……)Oracle数据库有一个或多个物理的数据文件。

数据库的数据文件包含全部数据库数据。

逻辑数据物理地存储在数据文件中。

数据文件有下列特征:一个数据文件仅与一个数据库联系。

当数据库容量越界时,数据文件能够自动扩展。

一个或多个数据文件组成一个表空间。

每个数据库有两个或多个日志文件组,日志文件组用于收集数据库日志。

日志的主要功能是记录对数据所作的修改,所有对数据库作的全部修改记录在日志中。

每个Oracle数据库有一个控制文件,记录数据库的物理结构。

控制文件包含数据库名、数据库数据文件和日志文件的名字、位置和数据库建立日期等信息。

7、谁能够启动数据库例程(实例),并打开数据库?(DBA)8、当一个数据库启动时,Oracle将分配一块内存空间,叫做系统全局区,其英文缩写是什么?(SGA)9、Oracle管理数据库存储空间的最小数据存储单位是什么?(数据块)10、Oracle分配磁盘空间的最小单位是什么?(区间)11、简述C/S结构和多层结构。

客户/服务器结构多层结构是对客户/服务器结构的一种扩展:客户端。

应用程序服务器。

数据库服务器二、Oracle10g数据库管理工具1、服务启动后,可以在Web浏览器中按什么方式访问EM10g?(http://<oracle数据库服务器名称>:<EM端口号>/em)2、不同数据库的EM端口号是否相同?(可以不同)3、EM和iSQL*Plus页面的默认端口号分别是什么?配置监听程序时服务默认的TCP/IP端口号是什么?(1158、5560、1521)4、监听程序驻留在哪里?解释监听程序的作用。

Oracle Net Manager ,oracle 监听程序的作用1、监听程序就是在服务端等客户端连接的程序2、简单地说,要和数据库服务器通讯,必须要和服务器连接,建立连接时,服务器要知道有客服端连接进来了,而监听器就是干这个活的,对于专用连接来说,它负责建立一个与客户端对应的服务器进程来为其服务。

三、数据库管理、配置和维护1、Oracle数据库实例有哪四种状态?打开(OPEN),关闭(CLOSE),已装载(MOUNT),已启动(NOMOUNT).2、关闭数据库实例的操作分为哪四种情况?分别说明。

正常关闭SHUTDOWN NORMAL,立即关闭SHUTDOWN IMMEDIATE,事务处理关闭SHUTDOWN TRANSACTIONAL,中止关闭 SHUTDOWN ABORT.3、SPFile是什么文件?其英文全称是什么?它始终存放在哪里?(保存初始化参数的服务器参数文件,Server Parameter File,存放在服务器端)4、SYS、SYSTEM和SCOTT用户的默认密码分别是什么?SYS,默认密码为CHANGE_ON_INSTALL。

SYSTEM,默认密码为MANAGER。

SCOTT,默认密码为TIGER5、执行立即关闭的命令是什么?SHUTDOWN IMMEDIATE6、给出数据库正常启动所经历的几种状态 ?(STARTUP NOMOUNT –数据库实例启动;STARTUP MOUNT - 数据库装载;STARTUP OPEN – 数据库打开)四、数据库存储管理1、创建表空间的语句是什么?分别使用什么关键字可以创建大文件表空间、临时表空间、撤消表空间?CREATE TABLESPACEBIGFILE TEMPORARY UNDO2、修改表空间的语句是什么?ALTER TABLESPACE3、控制文件的扩展名是什么?(CTL)五、数据库安全管理1、Oracle中密码(口令)长度必须介于多少个字符之间?(4~30)2、授予用户系统权限的命令是什么?授予用户数据对象上操作权限的命令是什么?GRANT <系统权限> TO <用户名>GRANT <数据对象权限>ON <数据对象> TO <用户名>3、如何建立方案?在创建用户的时候,会同时生成一个与用户同名的方案,此方案归同名用户所有。

4、简述用户和角色的关系。

oracle中建立用户需要授予对应的权限才能进行相应的操作。

角色是定义好的一个权限的集合。

如对用户授予dba角色,他会马上具备dba角色包含的所有权限,而不需要挨个去授权除系统自带的角色外,还可以定义自己的角色,比较方便对批量用户的权限管理。

5、一个方案对应多少个Oracle用户?一个6、创建用户时,需要赋予新用户什么权限才能使它联上数据库?(CONNECT)六、数据库对象管理2、简述表与视图的区别与联系。

视图:虚拟的表,它在物理上并不存在。

视图可以把表或其他视图的数据按照一定的条件组合起来,所以也可以把它看成是一个存储的查询。

视图并不包含数据,它只是从基表中读取数据。

3、简述索引的工作原理。

索引:与表相关联的可选结构。

创建索引可以提高读取数据的效率。

索引的功能类似于书的目录一样,读者可以通过目录很快地在书中找到需要的内容,Oracle索引提供对表数据的访问路径,从而使用户能够快速定位指定的信息。

七、PL/SQL语言基础1、PL/SQL中的块由哪三部分组成?PL/SQL的块由变量声明、程序代码和异常处理代码3部分组成。

2、 Oracle中标识符的命名规则。

标识符必须以字符开头。

标识符中可以包含数字(0~9)、下划线(_)、“$”和“#”。

标识符最大长度为30。

标识符不区分大小写,TypeName和typename是完全相同的。

不能使用PL/SQL保留字使用标识符名,例如不能声明变量名为DECLARE3、 PL/SQL语言中赋值号和判等符号分别是什么?判断相等的情况用‘=’,赋值情况用‘:=’,4、书写简单的PL/SQL程序。

演示IF语句的使用方法:SET ServerOutput ON;DECLARENum INTEGER := -11;BEGINIF Num < 0 THENdbms_output.put_line('负数');ELSIF Num >0 THENdbms_output.put_line('正数');ELSEdbms_output.put_line('0');END IF;END;使用CASE语句根据给定的整数输出对应的星期值:SET ServerOutput ON;DECLAREResult VARCHAR2(20);BEGINResult := CASE varDAYWHEN 1 THEN '星期一'WHEN 2 THEN '星期二'WHEN 3 THEN '星期三'WHEN 4 THEN '星期四'WHEN 5 THEN '星期五'WHEN 6 THEN '星期六'WHEN 7 THEN '星期七'ELSE '数据越界'END;dbms_output.put_line(Result);END;LOOP…EXIT…END语句的示例程序:SET ServerOutput ON;DECLAREv_Num INTEGER := 1;v_Sum INTEGER := 0;BEGINLOOPv_Sum := v_Sum + v_Num;dbms_output.put_line(v_Num);IF v_Num = 3 THENEXIT;END IF;dbms_output.put_line(' + ');v_Num := v_Num + 1;END LOOP;dbms_output.put_line(' = ');dbms_output.put_line(v_Sum);END;用LOOP…EXIT WHEN…END语句来实现:SET ServerOutput ON;DECLAREv_Num INTEGER := 1;BEGINLOOPv_Sum := v_Sum + v_Num;dbms_output.put_line(v_Num);EXIT WHEN v_Num = 3;dbms_output.put_line(' + ');v_Num := v_Num + 1;END LOOP;dbms_output.put_line(' = ');dbms_output.put_line(v_Sum);END;用WHILE…LOOP…END LOOP语句来实现:SET ServerOutput ON;DECLAREv_Num INTEGER := 1;v_Sum INTEGER := 0;BEGINWHILE v_Num <= 3LOOPv_Sum := v_Sum + v_Num;dbms_output.put_line(v_Num);IF v_Num < 3 THENdbms_output.put_line(' + ');END IF;v_Num := v_Num + 1;END LOOP;dbms_output.put_line(' = ');dbms_output.put_line(v_Sum);END;用FOR…IN…LOOP…END LOOP语句来实现,代码如下:SET ServerOutput ON;DECLAREv_Num INTEGER;v_Sum INTEGER := 0;BEGINFOR v_Num IN 1..3LOOPv_Sum := v_Sum + v_Num;dbms_output.put_line(v_Num);IF v_Num < 3 THENdbms_output.put_line(' + ');END IF;END LOOP;dbms_output.put_line(' = ');dbms_output.put_line(v_Sum);END;下面是一段与数据库操作有关的异常处理代码:SET SERVEROUTPUT ON;DECLAREvar_UserName VARCHAR(40);BEGINSELECT UserName INTO var_UserNameFROM Users WHERE UserType = 1;EXCEPTIONWHEN NO_DATA_FOUND THENDBMS_OUTPUT.PUT_LINE('没有数据');WHEN TOO_MANY_ROWS THENDBMS_OUTPUT.PUT_LINE('返回多行匹配的数据');WHEN OTHERS THENDBMS_OUTPUT.PUT_LINE('错误情况不明');END;八、游标、存储过程和触发器1、使用显式游标需要哪四个步骤?(1)声明游标。

相关主题