oracle课后填空选择答案.docx
《oracle课后填空选择答案.docx》由会员分享,可在线阅读,更多相关《oracle课后填空选择答案.docx(27页珍藏版)》请在冰豆网上搜索。
oracle课后填空选择答案
第二章
数据库系统的物理存储结构主要由3类文件组成,分别为数据文件、日志文件、控制文件。
2.用户对数据库的操作如果产生日志信息、则该日志信息首先被存储在日志缓冲区中,随后
由LGWR进程保存到日志文件。
3.一个表空间物理上对应一个或多个数据文件。
4.在Oracle的逻辑存储结构中,根据存储数据的类型,可以将段分为数据段、索引段、回退段、LOB段和临时段。
5.在Oracle的逻辑存储结构中,数据块是最小的I/O单元。
6.在多进程Oracle实例系统中,进程分为用户进程、后台进程和服务器进程。
当一个用户运行应用程序,如PRO*C程序或一个Oracle工具(如SQL*Plus),系统将为用户运行的应用程序建立一个用户进程。
1.下列选项中,哪一部分不是Oracle实例的组成部分C
A.系统全局区SGAB.PMON后台进程C.控制文件调度进程
2.在全局存储区SGA中,哪部分内存区域是循环使用的B
A.数据缓冲区B.日志缓冲区C.共享池D.大池
3.解析后的SQL语句在SGA的哪个区域中进行缓存C
A.数据缓冲区B.日志缓冲区C.共享池D.大池
4.如果一个服务进程非正常终止,Oracle系统将使用下列哪一个进程来释放它所占用的资
源D
5.如果服务器进程无法在数据缓冲区中找到空闲缓存块,以添加从数据文件中读取的数据
块,则将启动如下哪一个进程D
6.下列关于共享服务器模式的叙述哪一项不正确A
A.在共享服务器操作模式下,每一个用户进程必须对应一个服务器进程
B.一个数据库实例可以启动多个调度进程
C.在共享服务器操作模式下,Oracle实例将启动调度进程Dnnn为用户进程分配服务进程
D.共享服务器操作模式可以实现少量服务器进程为大量用户进程提供服务
7.当数据库运行在归档模式下时,如果发生日志切换,为了保证不覆盖旧的日志信息,系统
将启动如下哪一个进程D
8.下列哪一个进程和数据库部件可以保证用户对数据库所做的修改在没有保存的情况下,不
会发生丢失修改数据C
和数据文件和日志文件组和控制文件和归档日
志文件
9.下列哪一个进程用于将修改过的数据从内存保存到磁盘数据文件中A
10.如果要查询数据库中所有表的信息,应当使用下列哪种数据字典视图A
视图视图视图D.动态性能视图
11.下列哪一项是Oracle数据库中最小的存储分配单元D
A.表空间B.段C.盘区D.数据块
12.下面的各项中哪一个正确描述了Oracle数据库的逻辑存储结构A
A.表空间由段组成,段由盘区组成,盘区由数据块组成
B.段由表空间组成,表空间由盘区组成,盘区由数据块组成
C.盘区由数据块组成,数据块由段组成,段由表空间组成
D.数据块由段组成,段由盘区组成,盘区由表空间组成
第三章
1.标准的SQL语言语句类型可以分为:
数据定义语句(DDL)、数据操纵语句(DML)和数据控制语句(DCL)。
2.在需要滤除查询结果中重复的行时,必须使用关键字Distinct;在需要返回查询结果中的
所有行时,可以使用关键字ALL。
3.如果需要在SELECT子句中包括一个表的所有列,可使用符号*。
4.如果定义与组有关的搜索条件,可以把groupby子句添加到SELECT语句中。
5.当进行模糊查询时,就使用关键字LIKE和通配符"_"或百分号"%"。
子句可以接收FROM子句输出的数据,而HAVING子句则可以接收来自groupby、
FROM或where子句的输入。
7.使下列SQL语句中添加适当的表达式或子句,使语句可以正常运行。
SELECT供应商所在城市,COUNT(供应商编号)
FROM供应商信息
GROUPBY供应商所在城市
ORDERBY2DESC;
1.下列的哪个子句在SELECT语句中用于排序结果集D
子句子句子句BY子句
2.为了去除结果集中重复的行,可在SELECT语句中使用下列哪个关键字B
3.下列哪个关键字或子句用来限定查询结果集中的行B
BY子句的作用是什么A
A.查询结果的分组条件B.组的筛选条件C.限定返回的行的判断条件D.对结果集进行排序
子句的作用是B
A.查询结果的分组条件B.组的筛选条件C.限定返回的行的判断条件D.对结果集进行排序
6.下列哪个函数可以把一个列中的所有值相加求和B
7.下列哪个子句是SELECT语句中必选项A
BY
8.当使用三角函数COS求余弦时,应以B为单位传递参数。
A.角度B.弧度C.角度和弧度均可D.上述都不对
9.下列哪个子句实现对一个结果集进行分组和汇总D
BYBY
10.查询一个表的总记录数,可以采用C统计函数。
(*)(*)(*)(*)
第四章
1.在SQL语句中,用于向表中插入数据的语句是Insert。
2.如果需要向表中插入一批已经存在的数据,可以在INSERT语句中使用select语句。
3.创建一个UPDATE语句来修改ARTISTS表中的数据,并且把每一行的T_ID值都改成15,应该使用的SQL语句是updateartistssett_id=15;。
4.使用describe命令可以显示表的结构信息。
5.使用SQL*Plus的get命令可以将文件检索到缓冲区,并且不执行。
6.当设置了多个列的显示属性后,如果清除设置的显示属性,可以使用命令clear,而当要
清除某列具体的显示属性时,需要使用命令OFF。
7.使用SAVE命令可以将缓冲区中的SQL命令保存到一个文件中,并且可以使用Start命令运行该文件。
8.要设置SQL*Plus显示数字时的格式可以使用NumFormat命令,而要设置某个数字列的
显示格式要使用Column命令。
1.要建立一个语句向Types表中插入数据,这个表只有两列,T_ID和T_Name列。
如果要插入一行数据,这一行的T_ID值是100,T_Name值是FRUIT。
应该使用的SQL语句是A。
INTOTypesValues(100,'FRUIT')
*FROMTypesWHERET_ID=100ANDT_Name='FRUIT'
SETT_ID=100FROMTypesWHERET_Name='FRUIT'
*FROMTypesWHERET_ID=100ANDT_Name='FRUIT'
2.用A语句修改表的一行或多行数据。
3.要建立一个UPDATE语句更新表的某一列数据,且更新的数据为表统计的结果。
则需要
在UPDATE语句中使用什么语句C
语句中用B语句或子句来指明表中所要删除的行。
5.使用什么命令可以清除表中所有的内容D
6.如果要设置SQL*Plus每页打印的数量,则可以使用如下的哪个命令C
PAGEPAGESIZE
7.以下的哪个命令可以将SQL命令保存到文件中A。
而哪个命令可以将SQL命令的
运行结果保存到文件中B。
第五章
1.在Oracle系统中,为了实现对表、视图和索引等数据库对象进行管理,Oracle采用模式实现。
2.一个模式只能够被一个数据库用户所拥有,其创建的所有模式对象都保存在自己的模式
中。
数据类型与Varchar2类型都用于存储字符串。
如果定义了Char类型的字段,并且
向其赋值时,字符串的长度小于定义的长度,则使用空格填充;而Varchar2类型的字段用
于存储变长的字符串,即如果向该列赋值的字符长度小于定义时的长度,该列的字符长度只
会是实际字符数据的长度,系统不会使用空格填充。
实际上保存的是记录的物理地址,因此通过ROWID来访问记录右以获得最快的
访问速度。
5.在STORAGE子句中可以设置6个存储参数。
其中,Initial指定为表中的数据分配的第一个盘区的大小;Next指定为存储表中的数据分配的第二个盘区大小;Pctincrease指定从第二个盘区之后,每个盘区相对于上一个盘区的增长百分比;Minextents指定允许为表中的数据所分配的最小盘区数目;Maxextents指定允许为表中的数据所分配的最大盘区数目。
6.通过数据块空间管理参数可以控制数据块中空闲空间的使用方法,其中Pctfree用于控制
数据块的更新预留的空间,而Pctused用于控制数据块在删除时释放空间的门槛。
7.为Student表手动分配存储空间,并且大小由NEXT参数设置,则应使用的语句为Alter
tableStudentallocateextent;;如果为Student表手动分配了一个大小为128KB的新盘区,则应使用的语句为AltertableStudentallocateextent(size128k);。
8.填写下面语句,使其可以将Class表移动到表空间SYSTEM中的数据段,并且其初始化盘区为30KB,第二个盘区为20KB,随后分配的盘区不会增长。
ALTERTABLEClassmove
TABLESPACESYSTEM
STORAGE(
Initial30k
Next20k
Pctincrease0
MAXEXTENTSUNLIMITED);
9.根据约束的作用域,约束可以分为表级约束和列级约束两种。
列级约束是字段定义的一部
分,只能够应用在一个列上;而表级约束的定义独立于列的定义,它可以应用于一个表中的
多个列。
10.填写下面的语句,使其可以为Class表的ID列添加一个名为PK_CLASS_ID的主键约束。
ALTERTABLEClassAddconstraintPK_CLASS_IDPRIMARYKEY(ID)
11.假设已经创建了CHAINED_ROWS表,填写下面的语句,以便对“业务员信息”表进行
链接记录分析:
ANALYZETABLE业务员信息
Listchainedrowsintochained_rows
1.下列哪个对象属于模式对象C
A.数据段B.盘区C.表D.表空间
2.关于模式的描述下列哪一项不正确C
A.表或索引等模式对象一定属于某一个模式
.在Oracle数据库中,模式与数据库用户是一一对应的
C.一个表可以属于多个模式
D.一个模式可以拥有多个表
3.如果一个表中某条记录的一个字段暂时不具有任何值,那么在其中将保存什么内容C
A.空格字符B.数字0D.该字段数据类型的默认值
4.下列哪一项不是伪列ROWID的作用D
A.保存记录的物理地址B.快速查询指定的记录C.标识各条记录D.保存记录的头信息
5.下列哪一项错误地描述了默认值的作用B
A.为表中某列定义默认值后,如果向表中添加记录而未为该列提供值,则使用定义的默认值
代替
B.如果向表中添加记录并且为定义默认值的列提供值,则该列仍然使用定义的默认值
C.如果向表中添加记录并且为定义默认值的列提供值,则该列使用提供的值
D.向表中添加记录时,如果定义默认值的列提供值为NULL,则该列使用NULL值
6.某用户需要创建一个很小的表,但是该表会被许多查询使用,这时用户应当在创建该表时
指定下列哪个子句B
和PCTUSED
7.为了减少表中的链接记录和迁移记录,应当增大表的哪一个存储参数A
8.唯一约束与主键约束的一个区别是D
A.唯一约束的列的值不可以有重复值B.唯一约束的列的值可以不是唯一的
C.唯一约束的列不可以为空值D.唯一约束的列可以为空值
9.如果为表Employee添加一个字段Email,现在规定每个雇员都必须具有唯一的Email地址,则应当为Email字段建立哪种约束B
KeyNULL
第六章
1.在使用逗号连接的多表查询中,为了防止出现笛卡儿积,需要SELECT语句的Where子
句中提供连接条件。
2.使用逗号连接的多表查询中,用户可以根据下述基本原则创建需要的各种查询:
From子
句应当包括所有的表名,在Where子句中应定义一个连接条件,当列名为多个表共有时,
列名必须被限制。
3.自然连接为具有相同名称的列自动进行记录匹配,它不必指定任何同等连接条件。
4.集合运算符UNION实现了集合的并运算,操作INTERSECT实现了对集合的交运算,而
MINUS则实现了减运算。
5.使用关键字连接子查询时,EXISTS关键只注重子查询是否返回行,如果子查询返回一个
或多个行,那么便返回为真,否则为假。
1.下列哪一种连接与逗号分隔连接执行的效果相同C
A.外连接B.交叉连接C.自然连接D.内连接
2.如果只需要返回匹配的列,则应当使用哪种连接A
A.内连接B.交叉连接C.左连接D.全连接
3.下列SELECT语句中,哪些子句可以包含子查询C
BYBY
4.如果使用逗号分隔连接查询两个表,其中一表有20行,而另一个表有50行,如果未使用WHERE子句,则将返回多少行B
5.下列的SELECT语句中哪个不能正常运行D
STD,SNAME,SCLASS,CNAMEFROMSTUDENTS,CLASSC
WHERESCLASS=CID;
*FROMSTUDENTS,CLASSCWHERESCLASS=CID;
,SCLASS,FROMSTUDENTS,CLASSC
WHERE=;
,SCLASS,FROMSTUDENT
WHERESCLASSSIN(SELECTCIDFROMCLASC);
6.下面的ASELECT语句用于查询SCHOOL模式中的STUDENT、CLASS和
DEPARTMENT表中的信息。
完成该语句,使其可以正常运行。
SELECT,,,,
FROMSTUDENTS_________CLASSC_________________DEPARTMENTD
WHERE='法律系';
、ON=、JOIN、ON=
JOIN、ON=、JOIN、ON=
JOIN、ON=、JOIN、ON=
、ON=、NATURALJOIN、ON=
7.在下面各选项中,B与下面SELECT语句的查询结果相同。
SELECTSID,SNAME,SADDRESSFROMSTUDENT
WHERESCLASS='C0010545'ORSCLASSIN(SELECTCIDFROMCLASS
WHEREDEPARTMENTIN(
SELECTDIDFROMDEPARTMENT
WHEREDNAME='化工系'));
SID,SNAME,SADDRESSFROMSTUDENTWHERESCLASS='C0010545'
INTERSECT
SELECTSID,SNAME,SADDRESSFROMSTUDENTS,CLASSC
WHERE=ANDIN
(SELECTDIDFROMDEPARTMENTWHEREDNAME='化工系');
SID,SNAME,SADDRESSFROMSTUDENTWHERESCLASS='C0010545'
UNION
SELECTSID,SNAME,SADDRESSFROMSTUDENTS,CLASSC
WHERE=ANDIN
(SELECTDIDFROMDEPARTMENTWHEREDNAME='化工系');
*FROMSTUDENTWHERESCLASS='C0010545'
UNION
SELECT*FROMSTUDENTS,CLASSC
WHERE=ANDIN
(SELECTDIDFROMDEPARTMENTWHEREDNAME='化工系');
SID,SNAME,SADDRESSFROMSTUDENTWHERESCLASS='C0010545'
MINUS
SELECTSID,SNAME,SADDRESSFROMSTUDENTS,CLASSC
WHERE=ANDIN
(SELECTDIDFROMDEPARTMENTWHEREDNAME='化工系');
第七章
SQL程序块主要包含3个主要部分:
声明部分、可执行部分和异常处理部分。
2.使用显式游标主要有4个步骤:
声明游标、打开游标、检索数据、关闭游标。
3.在PL/SQL中,如果SELECT语句没有返回列,则会引发ORACLE错误,并引发
no_data_found异常。
4.自定义异常必须使用raise语句引发。
5.查看操作在数据表中所影响的行数,可通过游标的%RowCount属性实现。
6.查看下面的程序块,DBMS_OUTPUT将显示什么结果N
DECLARE
var_aCHAR
(1):
='N';
BEGIN
DECLARE
var_aCHAR
(2);
BEGIN
var_a:
='Y';
END;
(var_a);
END;
7.查看下面的程序块,其中变量var_b的结果为5。
DECLARE
Var_anumber:
=1200;
Var_bnumber;
BEGIN
IFvar_a>500THEN
var_b:
=5;
ELSIFvar_a>1000THEN
var_b:
=10;
ELSE
var_b:
=8;
ENDIF;
END;
8.下列程序计算由0~9之间的任意3个不相同的数字组成的三位数,共有多少种不同的组合方式完成下列程序使其能够正确运行。
DECLARE
counternumber:
=0;
BEGIN
FORiIN1..9LOOP
FORjIN0..9LOOP
IFi!
=jTHENi<>j
FORkIN0..9LOOP
IFk!
=iandk!
=jk<>iandk<>j
counter:
=counter+1;
ENDIF;
ENDLOOP;
ENDIF;
ENDLOOP;
ENDLOOP;
(counter);
END;
1.以下定义的哪个变量是非法的B
NUMBER(3);NUMBER(3)NOTNULL:
='0';
NUMBER(3)DEFAULT:
=1;NUMBER(3):
=3;
2.下列哪一个不是BOOLEAN变量可能的取值D
3.只能存储一个值的变量是哪种变量B
A.游标B.标题变量C.游标变量D.记录变量
4.声明%TYPE类型的变量时,服务器将会做什么操作A
A.为该变量检索数据库列的数据类型B.复制一个变量
C.检索数据库中的数据D.为该变量检索列的数据类型和值
5.下列哪一项可以正确地引用记录变量中的一个值B
(1);
(1).col;下列哪个语句允许检查UPDATE语句所影响的行数B
%FOUND%ROWCOUNT%COUNTD%NOTFOUND
7.在定义游标时使用的FORUPDATE子句的作用是B
A.执行游标B.执行SQL语句的UPDATE语句C.对要更新表的列进行加锁D.都不对
8.对于游标FOR循环,以下哪一种说法是不正确的D
A.循环隐含使用FETCH获取数据B.循环隐含使用OPEN打开记录集
C.终止循环操作也就关闭了游标D.游标FOR循环不需要定义游标
9.下列哪个关键字用来在IF语句中检查多个条件B\C
IF
10.如何终止LOOP循环,而不会出现死循环C
A.在LOOP语句中的条件为FALSE时停止B.这种循环限定的循环次数,它会自动终止循环WHEN语句中的条件为TRUEWHEN语句中的条件为FALSE
11.下列哪一项可以正确引用记录表变量中的一个值B
(1);
(1).col如果PL/SQL程序块的可执行部分引发了一个错误,则程序的执行顺序将发生什么变化
A
A.程序将转到EXCEPTION部分运行B.程序将中止运行C.程序仍然正常运行D.以上都不对
第八章
1.在下面程序的空白处填写一定的代码,使该函数可以获取指定编号的商品价格。
CREATEORREPLACEFUNCTIONget_price
(P_IDvarchar2)
returnnumber
IS
v_priceNUMBER;
BEGIN
SELECT单价
intov_price
FROM商品信息WHERE商品编号=P_ID;
RETURNv_price;
EXCEPTION
WHENNO_DATA_FOUNDTHEN('查找的商品不存在!
');
WHENTOO_MANY_ROWSTHEN('程序运行错误!
请使用
游标');
WHENOTHERSTHEN('发生其他错误!
');
ENDget_price;
2.假设有一个程序包,其中包含了两个重载的函数max。
写出下面程序调用max函数后的运行结果。
程序包主体:
Createorreplacepackagebody
TESTis
Functionmax(xinnumber,yinnumber)returnnumberis
Resultnumber;
Begin
Ifx>ythen
Result:
=x;
Else
Result:
=y;
Endif;
Return(result)'
Endmax;
Functionmax(xinnumber,yinnumber,zinnumber)returnnumberisresultnumber;
Begin
Result:
=(x,y);
Result:
=(result,z);
Return(result);
Endmax;
End;
运行结果:
21
3.在下面程序的空白处填写适当的代码,使得调用该过程时可以统计某产地的商品数量和总
价。
CREATEORREPLACEPROCEDUREproc_demo(
Merch_placeINvarchar2,
Price_sumoutNUMBER,
Merch_countoutNUMBER)
IS
BEGIN
SELECTSUM(单价),COUNT(*)INTOPrice_sum,Merch_count
FROM商品信息WHERE产地=Merch_place;
EXCEPTION
WHENNO_DATA_FOUNDTHEN
('所需数据不存在!
');
WHENOTHERSTHEN
('发生其他错误!
');
ENDproc_demo;
1.下列哪个语句可以在SQL*Plus中直接调用一个过程D
2.下面哪些不是过程中参数的有效模式C
OUTIN
3.如果存在一个名为TEST的过程,它包含3个参数:
第一个参数为P_NUM1,第二个参数为P_NUM2,第三个参数为P_NUM3。
3个参数的模式都是IN。