《Oracle数据库应用》练习题2docWord下载.docx
《《Oracle数据库应用》练习题2docWord下载.docx》由会员分享,可在线阅读,更多相关《《Oracle数据库应用》练习题2docWord下载.docx(12页珍藏版)》请在冰豆网上搜索。
段
D、段一表空间一区一数据块
6.有数据”test”分别存放到char(10)和腹rch^2(10)类型的字段中,其实际存储长度为()
A、1010B、44
C、104D、410
7.SQL语句中修改表结构的命令是()。
A、MODIFYTABLEB、MODIFYSTRUCTURE
C、ALTERTABLED、ALTERSTRUCTURE
8.DELETEFROMSWHERE年龄>
60语句的功能是。
A、从S表屮删除年龄大于60岁的记录
B、删除S表中所有数据
C、删除S表
D、删除S表的年龄列
9.在SQL中,删除视图用o
A、DROPSCHEMA命令B、CREATETABLE命令
C、DROPVIEW命令D、DROPINDEX命令
10.下列哪个命令是用于ORACLE中数据导出的()
A^expB>
impC^inputD^output
11.ORACLE数据库物理结构包描以下三种文件,以下不属于的是()
A、系统文件B、日志文件C、数据文件D、控制文件
12.假定有一张表用户表users,其中一身份证字段ID_card。
为了维护数据的
完整性,在设计数据库时,最好XJ-TD_card字段添加约束,请问应该添加什么约束()
A、primarykeyB>
checkC、defaultD、notnull
13.H而四个语句屮哪一个是正确的?
()
A、SELECT*,ENAMEFROMEMP;
B、DELETE*FROMEMP;
C、SELECTDISTINCTEMPNO,HIREDATEFROMEMP;
D、SELECTENAME|SALAS“name”FROMEMP;
14.
B、TOO_MANY_ROWS
当给一个冇主键的表屮插入垂复行时,将引发下列哪个异常?
(
C、DUP_VAL_ON_INDEX
D、ZERO_DTVTDE
15.下面哪个命令不属于数据操纵语言(DML)
A、NO_DATA_FOUND
A、ALTER-
B、INSERT…
C、UPDATE…
D、GRANT-
16.删除emp表中所有数据,且可以rollback,以下语句哪个命令可以实现()
A、truncatetableemp
B、droptableemp
C^delete*fromemp
D^deletefromemp
17.更改oracle用户HR,使其变为不可用(锁定)状态()
A、UPDATEUSERHRACCOUNTDISABLE;
B、UPDATEUSERHRACCOUNTLOCK;
C、ALTERUSERHRACCOUNTLOCK;
D、ALTERUSERHRACCOUNTDISABLE;
18.INSERTINTOTESTVALUES('
&
ID'
'
&
NAME'
);
语句在执行时将()
A、编译错:
提示变量未定义
B、运行错:
提示不能识别符号
C、将值&
H)和&
NAME插入到表中
D、提示用户输入输入ID和NAME的值,再将输入值插入表屮
19.在Oracle中,使用下列的语句:
CREATEPUBLICSYNONYMpartsFORScott,inventory;
完成的任务是()o
A、需要给出schema被除去的对象名
B、指定了新的对象权限
C、指定了新的系统权限
D、给Scott,inventory对象创建一个公用同义词parts
20.在PL/SQL块中,以零作除数时会引发卜•列()异常。
A、VALUE_ERR0R
B、ZERO_DIVIDE
C、VALUE_D1V1DE
D、ZER0_ERR0R
二、填空题(20分)
1.运行sql脚本命令是Start脚本或@脚本
2.显示当前用户名的命令Showuser
3.显示表emp的结构命令Descemp
4.权限是指执行特定类型sql命令或是访问其它方案对象的权利,包括—
系统权限和对彖权限两种。
5.pl/sql块为变量赋值不同于其它的编程语言,需要在等号前而加—冒号_
6.定义变量v_name,该变量的数据类型与emp表的ename字段数据类型一致,定义变量的语句是_Vnameemp.ename%type_
7.数据控制语句DCL包含授权语句grant和_Revoke_
8.oracle屮的注释符号冇--和_/**/_
9.在Oracle中创建用户时,若未提及DEFAULTTABLESPACE关键字,则
Oracle就将_system表空间分配给用户作为默认表空间。
10.写出数据库默认的两个用户的名称system和sys
11.oracle数据库中的数据文件的扩展名是什么?
dbf
12.控制文件的扩展名是什么?
_・ctl_
13.写出PL/SQL程序的三个组成部分—声明部分、—执行部分
和—异常处理部分—
14.写出数据字典的三种前缀,三种前缀:
—DBA—_ALL—和
_USER_
15.Oracle数据库的存储结构分为物理结构和—逻辑结构。
三、判断题(10分)
1.索引的主要目标是提高访问的速度。
(Y)
2.包头没有包体是口J以独立存在的。
3.OUT不是PL/SQLa程和函数的参数模式。
(N)
4.存储过程与触发器的主要区别就是,存储过程是由用户或应用程序显示
调用,而触发器是被事件自动触发。
5.提供对对象的公共访问不是同义词具有的用途(N)
6.Trancatetable学生,该语句表示删除学生表。
7.创建视图的参数withreadonly,规定视图中不能执行插入、修改、删
除和查询操作。
8.创建对象类型使用createtype语句(Y)
9.PL/SQL程序块最终由关键字end结束。
10.For循环中,每循环一次,循环变量自动増加一个步长的值。
四、简答题(15分)
1.列出oracle中索引的类型(5分)列出oracle中索引的类型(5分)答:
按照数据存储方式,可以分为B*树、反向索引、位图索引;
按照索引列的个数分类,可以分为单列索引、复合索引;
按照索引列值的唯-•性,可以分为唯一索引和非唯一索引。
此外还有函数索引,全局索引,分区索引…
2.简单列出几种当前流行的关系数据库系统?
(5分)
答:
Oracle,MySql,MsSql,DB2,Sybase.
3.简单介绍表空间,并写出一种建立表空间的方法。
表空间是Oracle逻辑存储结构的最高层,一个数据库就是若干个表空间纽成的。
每个表空间对应操作系统中的-•个或多个数据文件,但每个数据文件只能属于一个表空间。
Createtablespace表空间名datafile数据文件名;
五、程序题(35分)
Scott用户下有表emp(EMPXO,ENAME,JOB,MGR,HTREDATE,
SAL,COMM,DEPTNO)和表dept(DEPTNO,DNAME,LOC),其屮emp表为雇员表,各字段的中文含义为:
雇员表(雇员号,雇员名,职位,上级编号,入职时间,月工资,奖金,部门号);
dept表为部门表,各字段的中文含义为:
部门表(部门编号,部门名,部门所在地点)。
1.创建表空间myspl,文件大小5M,文件名可以复用,数据文件放在
"
c:
\myspl.dbf'
。
创建表空间myspl,文件大小5M,文件名可以复用,数据文件放在
'
createtablespacemyspldatafile'
\myspl.dbf'
size5mreuseunifonnsize128k;
2.在myspl表空间创建表myemp,字段名及类型内容同scott用户下的emp。
在myspl表空间创建表myemp,字段名及类型内容同scott用户下的empo
Createtablemyempasselect*fromscott.empdefaulttablcspaccmyspl
3.修改myemp表将所有销售人员(即职位job为销售salesman)的奖金comm
加100
修改myemp表将所有销售人员(即职位(job)为销售salesman)的奖金(comm)加100
Updatemyempsetcomm二comm+100wherejob=^salcsman'
4.创建用户fox,密码fl23,授予fox连接数据库,完全访问emp表和dept表的权限。
创建用户fox,密码fl23,授予fox连接数据库,完全访问emp表和dept表的权限。
createuserfox2identifiedbyf123;
grantcreatesessiontofox;
grantselectonscott.emptofox;
5.使用emp表查询工资高于500或者是岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J?
使用emp表查询工资高于500或者是岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J?
select*fromscott.empwhere(sal>
500orjob二'
MANAGER'
)andenamelike'
J%'
;
6.使用enip表显示每个部门的每种岗位的员工的平均工资和最低工资?
使用emp表显示每个部门的每种岗位的员工的平均工资和最低工
资?
selectdeptno,job,avg(sal)as平均工资,min(sal)as最低工资fromempgroupbydeptno,job;
7.编写PL/SQL程序块,实现查询某个雇员的岗位,用屮文显示岗位名称。
CLERK普员工,SALESMAN销售,MANAGER经理,ANALYST分析师,
PRESIDENT总裁(使用case语句)
编写PL/SQL程序块,实现查询某个雇员的岗位,用中文显示岗位名称。
CLERK普员工,SALESMAN销售,MANAGER经理,ANALYST分析师,PRESIDENT总裁(使用case语句)
setserverouton
declare
v_jobscott.emp.job%typc;
v_shuchuvarchar2(30);
Vempnovarchar2(20);
begin
Vempno:
二&
empno;
selectjobintov_jobfromscott.empwhereempno二v_cmpno;
casev_job
when'
CLERK'
thenv_shuchu:
=,得职位是:
普通员工'
when'
SALESMAN'
销售员'
=得职位是:
经理'
;
ANALYST'
分析师'
elsev_shuchu:
=,总裁'
endcase;
dbms_output.put_line(v_empno||v_shuchu);
except!
on
whormo_datei_foundthen
dbms_output.put_lineC您输入的员工不存在!
end;
8.编写程序块,用PL/sql实现输出7369号员工的姓名。
编写程序块,用PL/sql实现输岀7369号员工的姓名。
Declare
Vnameemp.ename%type;
Begin
Seiectenameintov_namefromempwhereempno=,7369’;
Dbms_output.put_linc(v_namc)
End;
9.编写函数annual_incomec,实现输入雇员的姓名,返回该雇员的年薪编写函数annual_incomec,实现输入雇员的姓名,返回该雇员的年薪
createfunctionannualincomec(namevarchar2)
returnnumberis
annual_salazynumber(7,2);
--执行部分selectsal*12+nvl(comm,0)intoannualsalazyfromempwhereename二name;
returrmrmiml_salazy;
10.编写一个过程,可以输入一个雇员名,如果该雇员的工资低于2000,就给该员工工资增加10%。
编写一个过程,可以输入一个雇员名,如果该雇员的工资低于2000,就给该员工工资增加10%。
createorreplaceproceduresp_pro6(spNamevarchar2)is—定义
v_salemp.sal%type;
--执行
selectsalintov_salfromempwhereename=spName;
―判断
ifv_sal<
2000then
updateempsetsal二sal+sal*10%whereename=spName;
endif;
11.创建角色myrole,将连接数据库,创建表,创建用户,创建角色,在任何模式修改表,完全访问emp表的权限赋予myrolco
创建角色myrole,将连接数据库,创建表,创建用户,创建角色,在任何模式修改表,完全访问emp表的权限赋予myroleo
createrolemyrolc;
grantcreatesession,createtable,createuser,createrole,alteranytabletomyrole;
grantallonscott.emptomyrole;
12.冋收myrole角色中完全访问emp表的权限
回收myrole角色屮完全访问emp表的权限revokeallonscott.empfrommyrole;
《Oracle数据库应用》答案
1-5DCCAB6—10CCACA11—15AACCA16—20DCDDB
二、填空题(20分)
1.Start脚本或@脚本2.Showuser3.Descempd.系统权限和对象权限5.冒号6.Vnameemp.ename%type7.Revoke&
/**/
9.
systcmlO・system和sys11.・dbf12..ctl13.声明部分、执行部分、异常处理部分。
14.DBAALLUSER15.逻辑结构
1—10YYNYNNNYYY
1.列出oracle中索引的类型(5分)
按照索引列值的唯一性,可以分为唯一索引和非唯一索引。
2.简单列出几种当前流行的关系数据库系统?
表空间是Oracle逻辑存储结构的最高层,一个数据库就是若干个表空间组成的。
每个表空间对应操作系统中的一个或多个数据文件,但每个数据文件只能属于一个表空间。
Createtablespace表空间名datafile数据文件名;
1•创建表空间myspl,文件大小5M,文件名可以复用,数据文件放在'
c:
2.在myspl表空间创建表myemp,字段名及类型内容同scott用户
下的empo
Createtablemyempasselect*fromscott.empdefaulttablespacemyspl
3.修改myemp表将所冇销售人员(即职位(job)为销售salesman)的奖金(comm)加100
Updatemyempsetcomm二comm+100wherejob=^salesman"
4.创建用户fox,密码fl23,授予fox连接数据库,完全访问emp表和dept表的权限。
createuserfox2identifiedbyf123;
grantcreatescssiontofox;
5.使用emp表查询工资高于500或者是岗位为MANAGER的雇员,同吋述要满足他们的姓名首字母为大写的J?
select*fromscott.empwhere(sal>
MANAGER,)andenamelike'
J%'
6・使用emp表显示每个部门的每种岗位的员工的平均工资和最低工资?
selectdeptno,job,avg(sal)as平均工资,min(sal)as最低工资fromempgroupbydeptno,job;
7.编写PL/SQL程序块,实现查询某个雇员的岗位,用中文显示岗位名称。
CLERK普员工,SALESMAN销售,MANAGER经理,ANALYST分析师,PRESIDENT总裁(使用case语句)
=,得职位是:
whenJMANAGER?
thenvshuchu:
二'
得职位是:
elsev_shuchu:
whenno_datei_foundthen
dbms_output.put_linc(,您输入的员工不存在!
);
V_nameemp.ename%type;
Selectenameintov_namefromempwhereempno二,7369,;
Dbms_output.put_line(v_name)
9.编写函数annual_incomec,实现输入雇员的姓名,返回该丿崔员的年薪
createfunctionannual_incomec(namevarchar2)
armU31_s3bzynumber(7,2);
--执彳亍部分
selectsal*12+nv1(comm,0)intoannual_salazyfromempwhereename=name;
rcturnarmU31_s3bzy;
/
10.编写一个过程,可以输入一个雇员名,如果该雇员的工资低于2000,就给该员工工资壇加10%。
createorreplaceproceduresp_pro6(spNamcvarchar2)is
—定义
sclcctsalintov_salfromempwherecname=spNamc;
—判断_
updateempsetsal二sal+sal*10%whereename=sp\ame;
endif;
11.创建角色myrole,将连接数据库,创建表,创建用户,创建角色,在任何模式修改表,完全访问emp表的权限赋予myroleo
createrolemyrole;
grantcreatesession,createtable,createuser,createrole,alteranytabletomyrolc;
revo