21天学通ORACLE练习题答案.docx

上传人:b****5 文档编号:4355481 上传时间:2022-11-30 格式:DOCX 页数:20 大小:40.38KB
下载 相关 举报
21天学通ORACLE练习题答案.docx_第1页
第1页 / 共20页
21天学通ORACLE练习题答案.docx_第2页
第2页 / 共20页
21天学通ORACLE练习题答案.docx_第3页
第3页 / 共20页
21天学通ORACLE练习题答案.docx_第4页
第4页 / 共20页
21天学通ORACLE练习题答案.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

21天学通ORACLE练习题答案.docx

《21天学通ORACLE练习题答案.docx》由会员分享,可在线阅读,更多相关《21天学通ORACLE练习题答案.docx(20页珍藏版)》请在冰豆网上搜索。

21天学通ORACLE练习题答案.docx

21天学通ORACLE练习题答案

21天精通ORACLE练习题答案

第1章Oracle安装配置

1.Oracle安装的硬件环境是什么?

Oracle10g安装的硬件要求为:

1024MB以上的物理内存,1.5GB至3.5GB磁盘空间,具体大小由安装类型决定。

目前的主流PC机均可满足此条件。

2.Oracle共有哪些重要版本?

Oracle目前使用最多的版本为Oracle9i和Oracle10g。

3.Oracle9i中的i和Oracle10g中的g各代表什么意思。

Oracle9i中的i代表Internet,表明该版本对Internet的支持;Oracle10g中的g代表Grid,表明该版本提供了网格计算功能。

4.Oracle安装时需要注意的主要问题有哪些?

(1)注意硬件配置。

Oracle对硬件要求较高,因此,安装时尤其需要注意服务器的配置是否达到了要求。

(2)注意空间分配

Oracle作为数据库的本质,决定了其使用过程中是一个体积不断增大的过程,因此尤其需要注意对硬盘空间的分配。

(3)安装路径的要求

Oracle的安装路径不要包含中文字符。

含有中文字符的路径在Oracle下并不能被很好的支持。

第2章Oracle常用工具

1.简述NetConfigurationAssistant(网络配置助手)与NetManager(网络管理员)这两种工具的关系。

NetManager具有和NetConfigurationAssistant具有相似的功能。

NetConfigurationAssistant以向导的模式出现,可以引导初学者进行配置;而NetManager则将所有配置步骤集合到同一界面,更适合熟练者进行操作。

2.监听程序配置中的主要参数有哪几个?

监听配置中的参数主要包括:

监听程序名、协议和端口号。

因为监听总是配置在Oracle数据库的服务器端,因此无需配置主机地址。

3.本地Net服务名配置中的主要参数有哪几个?

Net服务名配置中的参数主要包括:

服务名、数据库名称、协议、主机地址和端口号。

4.监听程序与Net服务名的关系是怎样的?

监听程序配置在服务器端,负责监视客户端的连接请求;Net服务名配置在客户端,用于向其他工具提供连接信息的配置。

客户端工具会利用Net服务名中的信息发送连接请求,监听程序会获得该请求,并作出反应。

第3章SQLPlus和PL/SQL

1.SQLPlus与PL/SQL有何区别?

SQLPlus是Oracle提供的一种用户接口。

用户可以利用SQLPlus与Oracle数据库进行交互。

PL/SQL则是Oracle的过程化编程语言。

用户可以通过PL/SQL编程完成复杂的数据库操作。

2.在SQLPlusw中,如果在一屏中无法显示查询结果,可以利用哪些手段进行格式化?

可以利用的手段包括:

(1)指定行的长度

可以利用setlinesize命令来设置行的长度。

例如,setlinesize120将会设置行的长度为120个字符。

(2)指定分页的尺寸

可以利用setpagesize命令来设置分页的尺寸。

例如,setpagesize20将会设置每页包含20行,并在每页的开头打印列名。

(3)利用输出暂停

可以利用setpauseon来指定输出暂停,用户可以手动跳转到下一页,从而使分页动作更有意义。

3.简述利用SQLPlus登录数据库所使用的命令即命令的各个参数的意义。

登录SQLPlus的命令格式为:

sqlplususername/password@SID。

其中,sqlplus用于调用Oracle安装文件中的sqlplus.exe文件;username为登录数据库时使用的用户名;password则为相应的密码;SID为数据库的实例名称。

需要注意的是,SID不同于Net服务名,不能用Net服务名来代替SID,除非Net服务名与SID相同。

4.试着里利用SQLPlus来创建一个新表。

可以通过如下步骤利用SQLPlus来创建一个新表:

(1)利用SQLPlus登录数据库ORCL。

在Windows的【开始】|【运行】的【打开】文本框中输入sqlplusscott/abc123@orcl来登录数据库ORCL。

(2)在SQLPlus命令行下输入如下命令来创建新表test:

createtabletest(idnumber,namevarchar2(20));

(3)在SQLPlus会出现表创建成功的提示,如图所示。

此时,证明表创建成功。

第4章Oralce数据库

1.请简述SID与ORACLE_SID的区别。

SID(SystemIdentifier)是数据库实例的惟一标识。

通常情况下,SID等于实例名称。

ORACLE_SID是指操作系统环境变量,并为操作系统提供默认的数据库实例名称。

2.请简述Oracle逻辑备份的主要手段。

逻辑备份是指利用exp命令进行备份。

exp命令提供了以下参数供用户进行自定义备份:

(1)owner参数,可以指定一个用户名列表。

导出时,将只导出用户名列表中用户所拥有的对象。

(2)tables参数,可以用于指定导出特定的数据表。

3.请简述Oracle物理备份的主要手段。

Oracle物理备份是指直接备份物理文件。

物理备份分为两种:

冷备份和热备份。

冷备份是指在数据库关闭的状态下,备份所有的数据库文件;热备份是指对处于启动状态下的数据库进行备份。

4.请简述利用PL/SQLDeveloper进行备份主要步骤。

利用PL/SQLDeveloper进行备份的主要步骤包括:

(1)利用【ExportUserOjbects】导出用户对象,所导出的内容包括用户拥有的所有对象(表、视图、程序要、存储过程、触发器、序列等)的创建脚本。

(2)利用【ExportTables】导出用户表的所有数据。

第5章Oracle数据表对象

1.请简述创建表空间命令中的主要参数的意义。

一个典型的创建表空间的示例代码如下所示:

createtablespaceuser4datafile'f:

\database\oracle\user4_data.dbf'size20M

autoextendonnext5Mmaxsize500M

其中,参数datafile指定要创建的表空间的物理文件的完整路径;参数size指定表空间的初始大小;参数autoextend指定表空间的尺寸是否能够自动扩展;next参数指定每次自动扩展的尺寸;maxsize参数指定所能扩展到的最大尺寸。

2.请简述Oracle的数据表在添加列和删除列时,语法形式上的区别。

为数据表添加列的语法形式为:

altertabletalbe_nameadd(column1datatype1,column2datatype2,…);

为数据表删除列的语法形式为:

Altertabletable_namedropcolumncolumn_name

比较二者会发现,添加列时,无需添加关键字column,而直接使用add选项;而删除列时,必须指定关键字column。

3.请简述会话级临时表和事务级临时表的区别。

会话级临时表和事务级临时表都用来临时存储数据。

事务级临时表在事务结束时,将清空表内数据;而事务级临时表在事务结束时,将清空表内数据。

在一个会话中,有可能有多个事务存在,因此,会话级临时表中的数据往往比事务级临时表中的数据持久性更强。

4.请简述虚表dual的主要应用场景。

dual表是作为虚表的概念存在的,主要用于from关键字的源表。

第6章约束

1.简述主键的存在意义。

主键被创建在一个或多个列上,通过这些列的值或者值的组合,惟一地标识一条记录。

主键列的值不允许出现null,因为利用某个列值等于null的条件,是无法获得相应记录的。

2.首先创建表teacher和student,并在两个表的id之间建立外键约束。

示例代码如下:

createtableteacher

(idnumber(3),

teacher_namenvarchar2(30));

createtablestudent

(idnumber(10)constraintpk_studentprimarykey,--主键约束

teacher_idnumber(3),

student_namevarchar2(20)

);

altertablestudentaddconstraintfk_teacher_studentforeignkey(student_id)referencesteacher(id);

3.简述惟一性约束与主键的区别。

主键设计为标识惟一一条记录,而惟一性约束则设计为保证列自身值的惟一性。

4.简述检查约束的作用。

检查约束所限制的对象为表中某列或某些列的值。

每当用户执行DELETE、INSERT或UPDATE等DML动作时,都会触发检查约束的校验。

校验的结果往往返回一个布尔值,如果布尔值为真,则动作可以成功执行,否则,动作将失败。

5.简述默认值约束的作用。

默认值约束为表中的列提供缺省值。

当执行INSERT或UPDATE动作时,如果针对该列,没有显式指定值,那么将使用默认值进行相应操作。

第7章视图

1.视图共分为哪几种?

视图共分为4类:

关系视图、内嵌视图、对象视图和物化视图。

2.何时应当使用内嵌视图?

当所需要的查询只是作为临时结果集存在,可重用性不高时,应当考虑使用内嵌视图。

3.简述对象视图的主要特点。

对象视图创建时总是基于某个已存在的对象类型,并具有面向对象的特点。

在对象视图中,对象的概念代替了行,而属性的概念代替了列。

4.简述物化视图的主要特点。

物化视图在创建时,总是同时创建着一个物理表,该表存储实际的数据。

物化视图会将查询结果置于物理表中。

当其启用了物化视图的查询重写功能之后,对与普通表的查询按照一定条件,有可能被Oracle自动转移到对物化视图的查询,从而大大提高了查询速度和性能。

5.如何获得数据库中某个用户的所有对象名称?

视图user_objects中存储了针对普通用户的所有对象,因此可以利用该视图进行查询,如:

selectowner,object_name,object_typefromall_objectswherelower(owner)='scott'

其中,owner列代表了所有者;object_name列代表了对象名称;object_type列代表了对象类型。

可能的查询结果如下所示:

OWNEROBJECT_NAMEOBJECT_TYPE

--------------------------------------------------------------

SCOTTDEPTTABLE

SCOTTPK_DEPTINDEX

SCOTTEMPTABLE

SCOTTPK_EMPINDEX

SCOTTBONUSTABLE

SCOTTSALGRADETABLE

第8章函数与存储过程

1.什么是函数的函数的确定性?

函数的确定性是指,当传入的参数一定,函数的每次执行都会返回相同的值。

对于确定性函数,应该使用deterministic选项进行定义。

这样Oracle可以在利用相同的参数调用函数时,将直接返回以前的执行结果,而不必重新执行函数,从而提高数据库性能。

2.简述存储过程的三种参数的特点。

存储过程可以使用三种函数:

IN参数、OUT参数和INOUT参数。

IN参数是传入参数,只用于向存储过程传值,在存储过程内部不能修改其值;OUT参数为传出参数,可以在存储过程内部进行赋值,以实现类似函数返回值的功能;INOUT参数,既可以向其中传入参数值,也可以在存储过程内部进行修改,即具有IN和OUT参数的双重功能。

3.程序包由哪两部分构成,二者的关系如何?

程序包一般由规范和主体两部分构成。

规范类似于面向对象编程语言中的接口,只是规定了该程序要所要实现的函数或存储过程的名称和参数;而主体类似于面向对象编程语言中的实现类,主体需要实现程序包中所规定的所有函数和存储过程。

4.函数和存储过程的最大区别是什么?

函数和存储过程的最大区别是,函数必须显式的返回值,而存储过程则没有返回值。

第9章游标

1.请简述显式游标使用的一般步骤。

显式游标一般使用步骤为:

声明游标,打开游标,获取游标和关闭游标。

2.请简述隐式游标与显式游标的区别。

隐式游标与显式游标的最大区别是,隐式游标不能由用户自行控制游标的打开、获取、关闭等动作。

3.请列举游标的主要属性。

游标的主要属性有四个:

found属性用于标识当前游标从结果中获取记录时,是否成功找到了记录。

notfound属性是found属性的对立面。

当不能成功获取记录时,将返回true,否则返回false。

rowcount属性用于返回当前时刻已经获得了多少条记录。

isopen属性用于判断游标是否处于打开状态。

4.请简述强类型动态游标与弱类型动态游标的区别。

强类型动态游标在使用时,必须声明其类型,在以后的使用过程中,虽然游标的定义可以修改,但是返回值类型是一定的。

而弱类型则无需声明返回值类型,但在使用过程中,必须保证每次用于获取记录的类型都能够正确接收来自游标的数据。

第10章触发器

1.Oracle中的触发器共有哪几类?

Oracle的触发器包括:

语句触发器、行触发器、insteadof触发器、系统事件和用户事件触发器。

2.语句触发器和行触发器的主要区别是什么?

语句触发器和触发器的作用对象都是表或视图。

语句触发器总是被触发一次,而无论用户操作所影响的记录是一行,还是多行;行触发器则针对每一行的操作都会触发一次。

3.简述insteadof触发器的主要特点。

相对于其他触发器,insteadof将代替触发事件的动作,即原事件不再执行。

4.列举两个触发器的主要应用场景。

1.信息汇总

当明细数据更新时,可以利用触发器实现汇总数据的更新。

2.数据备份

当数据更新时,可以利用触发器将原数据记录到历史数据表中,从而实现数据跟踪。

第11章序列

1.创建序列时,默认startwith和incrementby的值是多少?

创建序列时,如果没有指定startwith和incrementby,二者的值均为1。

2.简述startwith和minvalue的区别。

startwith用于指定,自序列创建后,第一次调用序列的nextvalue属性所获得的值;minvalue则为序列的最小值,当序列使用了cycle选项,循环取值时,第一次调用nextvalue属性的值即为minvalue所指定的值。

3.简述cycle的作用。

当序列达到了最大值,再次调用其nextval属性,如果该序列是cycle的,那么将进行循环取值;否则Oracle抛出错误,无法返回nextval属性的值。

4.序列的主要应用场景是什么?

序列的主要应用场景是,为表中的记录创建流水号。

第12章用户角色与权限控制

1.简述用户与模式的关系?

一般来说,一个有效用户都会拥有若干数据库对象;而这些对象的集合即称为模式。

2.简述系统权限与对象权限的区别?

系统权限是指针对数据库中特定操作的许可。

而对象权限则是针对数据库中特定对象的权限。

3.简述角色的意义。

角色是权限的集合,由于角色的可继承性与复用性,使用角色进行权限分配可以减少权限分配的工作量,提供工作效率。

4.如何实现两个角色之间的继承。

可以利用grant命令将一个角色的权限全部赋予另一角色,从而实现角色的继承。

例如,grantparentRoletochildRole。

第13章Oracle数据类型

1.Oracle的数据类型主要有哪几类?

Oracle中的数据类型主要有:

字符型、数值型、日期时间型和LOB型。

2.简述rowid的意义

rowid是由数据库自动创建的伪列,该列标识了数据存储的物理地址。

3.简述Oracle中空字符串与null的关系。

Oracle中将空字符串视为null。

在Oracle中判断某列的值是否为空,不能将该列的值与空字符串’’进行比较,而应该使用isnull。

4.简述Oracle中双引号的作用。

Oracle中的双引号主要有以下作用:

(1)用作含有特殊字符的列名。

(2)控制列名的大小写形式。

第14章Oracle中的函数与表达式

1.简述null作为函数参数时的特点。

Oracle中大部分函数,一旦使用了null作为参数,返回值为null。

因此,要特别注意对参数是否为null的处理,以便获得预期的结果。

2.简述like判式的使用方法。

like判式可用于进行模糊查询的条件,可以利用“%”——代表任意个数的任意字符、“_”——代表一个任意字符作为通配符。

例如,like'%good%'用于匹配含有“good”子字符串的字符串;like'good%'用于匹配以“good”字符串开头的字符串。

3.简述isnull判式的意义。

在Oracle中,判断某个表达式或者列的值是否为空,不能使用=''进行判断,而应当使用isnull。

4.简述窗口函数的特点。

Oracle在查询时,会捕获表中的记录,以查看是否符合查询条件。

而窗口函数的意义在于,为每条记录获得临时结果集合。

这些临时结果集合往往与当前记录有着这样那样的关系,从而允许为每条记录处理新的逻辑计算提供了方便。

第15章Oracle中的控制语句

1.试用casewhen语句改写以下语句。

ifcourse='0'then

dbms_output.put_line('数学');

elsifcourse='1'then

dbms_output.put_line('语文');

elsifcourse='2'then

dbms_output.put_line('英语');

else

dbms_output.put_line('其他');

endif;

改写后的代码如下所示:

casecourse

when'0'then

dbms_output.put_line('数学');

when'1'then

dbms_output.put_line('语文');

when'2'then

dbms_output.put_line('英语');

others

dbms_output.put_line('其他');

endcase;

2.试用无条件循环打印表employees的雇员信息(包括雇员ID、雇员姓名)。

declarecursorcu_student_id_nameis

selectstudent_id,student_name

fromstudents;

student_idstudents.student_id%type;

student_namestudents.student_name%type;

begin

opencu_student_id_name;

fetchcu_student_id_nameintostudent_id,student_name;

loop

dbms_output.put_line(student_id||':

'||student_name);

fetchcu_student_id_nameintostudent_id,student_name;

exitwhencu_student_id_name%notfound;

endloop;

closecu_student_id_name;

end;

3.利用while循环来完成上题的功能。

declarecursorcu_student_id_nameis

selectstudent_id,student_name

fromstudents;

student_idstudents.student_id%type;

student_namestudents.student_name%type;

begin

opencu_student_id_name;

fetchcu_student_id_nameintostudent_id,student_name;

whilecu_student_id_name%foundloop

dbms_output.put_line(student_id||':

'||student_name);

fetchcu_student_id_nameintostudent_id,student_name;

endloop;

closecu_student_id_name;

end;

4.利用for循环计算1~100之间所有奇数的和。

declaresummarynumber;

begin

summary:

=0;

foriin1..100loop

ifmod(i,2)=1then

summary:

=summary+i;

endif;

endloop;

dbms_output.put_line('summary='||summary);

end;

第16章SQL查询

1.在表students中,如何获取同名学生的信息?

selectstudent_name,count

(1)

fromstudents

groupbystudent_name

havingcount

(1)>1;

2.简述union与unionall的区别。

Union与unionall都是获得两个记录集合的并集。

Union在获得并集之后,删除重复记录,而unionall则不会删除重复记录。

3.利用外联接从表students与表student_course中获得学生与所选课程的信息。

selects.student_name,c.course

fromstudentss,student_coursec

wheres.student_id=c.student_id(+)

4.利用connectby获得中国市场下的所有子市场。

select*frommarket

startwithmarket_name='中国'

connectbypriormarket_id=parent_market_id

第17章SQL更新数据

1.如何利用insert命令实现批量插入。

一个insert命令实现批量插入的示例代码如下所示:

insertintotmp_students

select(student_seq.nextval,student_name,student_status,student_age);

2.如何利用update命令修改多列的值。

一个使用update命令更新多列数据的示例代码如下所示:

updatestudentssetstudent_name=10,student_age=2

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

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1