《oracle 数据库》练习题3.docx
- 文档编号:30509002
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:12
- 大小:20.40KB
《oracle 数据库》练习题3.docx
《《oracle 数据库》练习题3.docx》由会员分享,可在线阅读,更多相关《《oracle 数据库》练习题3.docx(12页珍藏版)》请在冰豆网上搜索。
《oracle数据库》练习题3
一、选择题(每题1分,共20分)
1.以下哪一个命令允许你直接修改一个已存在的视图?
()
A、ALTERB、CREATEC、MODIFYD、CREATEORREPLACE
2. 哪一语句可实现增加表employee的列 NAME 的长度到 25?
()
A、ALTERTABLEemployeeMODIFYnameVARCHAR2(25);
B、ALTERTABLEemployeeRENAMEnameVARCHAR2(25);
C、ALTERemployeeTABLEALTERCOLUMNnameVARCHAR2(25);
D、ALTERemployeeTABLEALTER(nameVARCHAR2(25));
3.下列哪个集合操作符返回两个查询都有的行,即集合的交运算。
()
A、Union B、Union all
C、Union only D、Intersect
4.在 PL/SQL 块的哪部分可以对初始变量赋予新值?
()
A、结尾部分 B、开头部分 C、执行部分 D、声明部分
5.哪一句可列出表 PARTS_VU 的结构?
()
A、DESCparts_vu
B、DESCuser_views
C、SELECT*FROMuser_viewsWHERElower(view)=parts_vu;
D、SELECT*FROMuser_objectsWHERElower(user_view)=parts_vu;
6.考虑下列声明,那些是合法的:
()
A、DECLAREv_name,v_deptVARCHAR2(14);
B、DECLAREv_testNUMBER(5);
C、DECLAREV_MAXSALARYNUMBER(7,2)=5000;
D、DECLAREV_JOINDATEBOOLEAN:
=SYSDATE;
7.Oracle会为下列哪些约束自动建立索引:
()
A、Check B、Unique C、Primarykey D、Foreignkey
8.你认为下面句子将完成什么任务?
()
CREATEPUBLICSYNONYMpartsFORmarilyn.inventory;
A、一个新对象被创建。
B、一个新对象权限被赋予。
C、一个新系统权限被赋予。
D、一个对象的同义词被创建。
9.在oracle中哪个操作符用于两个或多个字符串合并在一起,或者将一个字符串与一个数据值合并在一起。
()
A、+ B、& C、# D、||
10.你认为下面句子将完成什么任务?
()
GRANTUPDATEON EMPLOYEES TO AZURE;
A、一个新的对象被创建。
B、一个新的对象权限被赋予。
C、一个新的系统权限被赋予。
D、一个对象的同义词被创建。
11. 哪条SELECT语句可得到单价大于15.00的所有产品的平均单价?
()
A、SELECTSUM(*)FROMproductsWHEREprice>15.00;
B、SELECTAVG(*)FROMproductsWHEREprice>15.00;
C、SELECTAVG(price)FROMproducts WHEREprice>15.00;
D、SELECTAVG(DISTINCT price)FROMproducts GROUPBYprice>15.00;
12.将所属部门名称为“SALES”的所有员工的工资增加10%,你需用哪一句实现?
()(注意:
sal属于emp表,dname属于dept表)
A、UPDATEempSETsal=sal*1.1WHEREdnameLIKE'SALES';
B、UPDATEempSETsal=sal*1.1WHEREdeptno=(SELECTdeptnoFROM deptWHERE dnameLIKE'SALES');
C、UPDATEempSETsal=sal*1.1WHEREdname=(SELECTdeptnoFROM deptWHERE dnameLIKE'SALES');
D、UPDATEempSETsal=sal*1.1WHEREdeptno=(SELECTdnameFROM deptWHERE dnameLIKE'SALES')
13.如果你进行3个表的联接查询,你最少需要多少个联结条件()
A、3 B、2 C、1 D、0
14.以零作除数时会引发()异常。
A、VALUE_ERRORB、ZERO_DIVIDE
C、STORAGE_ERRORD、SELF_IS_NULL
15.分析以下SQL命令:
SELECTpriceFROMinventory
WHEREpriceBETWEEN1AND50AND(priceIN(55,30,95);
命令执行后的最可能的输出结果是:
()
A、55B、30C、95D、51
16.SQL语言中,删除一个表的命令是()
A、DELETETABLEB、DROPTABLE
C、CLEARTABLED、REMORETABLE
17.SELECT语句的完整语法较复杂,但至少包括的部分(),
A、SELECT,INTO B、SELECT,FROM
C、SELECT,GROUP D、仅SELECT
18.对视图的描述错误的是:
()
A、是一张虚拟的表
B、在存储视图时存储的是视图的定义
C、在存储视图时存储的是视图中的数据
D、可以像查询表一样来查询视图
19.建立索引的目的是()
A、降低SQLServer数据检索的速度
B、与SQLServer数据检索的速度无关
C、加快数据库的打开速度
D、提高SQLServer数据检索的速度
20.select语句中,使用关键字()可以去除重复记录
A、DISTINCT B、UNION
C、ALL C、TOP
二、填空题(每题1分,共20分)
1.删除tester用户的语句为_____
2.Oracle数据库系统的物理存储结构主要有3类文件组成,分别是_______文件、_______文件和控制文件。
3.在Oracle中,使用_______命令可显示表的结构,使用_______命令可提交对表数据的修改。
4.Oracle中,进行逻辑备份与恢复时使用的导出命令是__;导入命令是___。
5.Oralce的权限分为______权限和________权限,授予权限的命令为___________,收回权限的命令为__________.
6.假设scott用户被锁定了,解除scott用户锁定的命令为__________
7.创建触发器使用_______命令
8.显示游标首先要_____,在使用时要____,使用完毕后要________。
9.PL/SQL是一种块结构的语言,组成PL/SQL程序的单元是逻辑块,一个PL/SQL程序块可以划分为三个部分______,_______和_______。
10.PL/SQL可以进行数据类型之间的转换,常见的数据类型转换函数有TO_DATA,该函数是将CHAR数据类型转换为________
11.显示当前用户身份命令:
________
三、判断题(12分)
1.Union all集合操作符返回两个查询所选择的所有的行()
2.一个数据文件可以隶属于不同表空间()
3.WITHCHECKOPTION表示使用视图更新数据时应满足视图定义中设置的条件()
4.存储过程与触发器的主要区别就是,存储过程是由用户或应用程序显示调用,而触发器是被事件自动触发。
()
5.DELETE语句是彻底删除表,连同表中的数据和表的结构一起删除。
()
6.在使用子查询时,必须使用括号把子查询括起来,以便区分父查询和子查询。
()
7.通过视图可以插入、修改或删除数据,因此视图也是一个实表()
8.一个表可以创建多个主键。
()
9.当一个表被删除掉时所有基于该表的索引都被自动删除。
()
10.系统权限的回收不是级联的,对象权限的回收是级联的。
()
11.在Oracle中创建用户时,若未提及DEFAULTTABLESPACE关键字,则Oracle就将SYSTEM表空间分配给用户作为默认表空间。
()
12.oracle自动为表的主键或唯一键列创建唯一索引()
四、简述题(每题3分,共9分)
1.写出目前流行的数据库管理系统:
2.简述oracle中约束的种类
3.简述oracle数据库系统的体系结构
五、程序题(每题3分,共39分)
Scott用户下有表emp(EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO)和表dept(DEPTNO,DNAME,LOC),表salgrade(grade,losal,hisal)其中emp表为雇员表,各字段的中文含义为:
雇员表(雇员号,雇员名,职位,上级编号,入职时间,月工资,奖金,部门号),dept表为部门表,各字段的中文含义为:
部门表(部门编号,部门名,部门所在地点)。
Salgrade表为工资级别表,各字段的中文含义(级别,最低工资,最高工资)
1.创建表空间stud初始大小10M,数据文件为‘c:
\stud1.dbf’允许自动扩展表空间大小,数据文件满了以后,扩展的大小为5M,数据文件的最大空间200M;修改表空间mysp1,将数据文件的大小扩展到20M。
2.在stud表空间中创建学生表student的,要求sno为字符型数据,长度为2,主键;sname字符型数据,长度为10,唯一;ssex字符型数据,长度2,只能是男或女,sclass字符型数据,长度10,默认值‘计算131’
3.向student表添加记录(‘01’,‘张三’,‘男’,‘计算131’),(‘02’,‘李斯’,‘男’,‘软件131’);将student表中李斯的班级改为计算131;删除学号为01的学生信息
4.修改student表,增加联系方式字段,字符型,长度11;删除班级字段
以下程序使用emp表,dept表和salgrade表
5.查询工资高于500或者是岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J?
6.显示每个部门的平均工资和最高工资,显示部门名,平均工资,最高工资?
7.查询每个员工的上级领导的姓名,显示雇员名,领导姓名?
(提示:
使用自连接)
8.创建雇员信息视图xin,显示雇员号,雇员名,岗位,部门名,地址,工资级别,并查询视图
9.创建用户tigerr,密码t123,默认表空间为annimal
10.给tigerr赋予连接数据库,创建表,查询scott下emp表的权限,这三种权限都可以级联授予其他用户。
11.创建角色myrole,将连接数据库,创建表,创建用户,创建角色,在任何模式修改表,完全访问emp表的权限赋予myrole。
12.创建包mypack,包中含有一个函数和一个过程,函数fun_newsal,用于计算员工的新工资,即输入员工姓名后,返回该员工的1.05倍工资(即sal值乘以1.05后返回)。
存储过程pro_sum,实现统计某个部门人数并输出。
(先创建函数和过程,然后再创建包)
13.创建存储过程pro_sum,该存储过程带一个字符型传入参数vdeptno,实现统计某个部门人数并输出,然后依次实现执行10号部门的人数。
答案
一、选择题(20分)
1—5DADCA6—10BCDDB11--15CBBBB16—20BBCDA
二、填空题(20分)
1.Dropusertester2.数据文件重做日志文件3.DESCcommit4.EXPIMP
5.系统权限对象权限grantrevoke6.alteruserscottaccountunlock7.createtrigger8.声明打开关闭9.声明部分执行部分异常处理部分10.日期型(date)
11.showuser
三、判断题(10分)
1—5√×√√×6—10√××√√11-12√√
四、简述题(10分)
1.写出目前流行的数据库管理系统:
Oracle、mysql、sqlserver、db2、ACCESS等
2.简述oracle中约束的种类
主键,唯一,检查,外键,非空,默认
3.简述oracle数据库系统的体系结构
(1)oracle物理存储结构(外部结构),由数据文件(datafile),控制文件(controlfiles),重做日志文件(redologfiles)组成
(2)oracle逻辑存储结构(内部结构),由表空间,表,约束条件,,分区,索引,用户,方案,同义词,权限、角色等组成
(3)Oracle的软件结构(实例),一系列oracle进程和驻留在内存中的结构
五、程序题(40分)
1.创建表空间stud初始大小10M,数据文件为‘c:
\stud1.dbf’允许自动扩展表空间大小,数据文件满了以后,扩展的大小为5M,数据文件的最大空间200M
createtablespacestud
datafile'c:
\stud1.dbf'size10M
autoextendonnext5Mmaxsize200M;
2.修改表空间mysp1,将数据文件的大小扩展到20M。
alterdatabasedatafile'c:
\mysp1.dbf'resize20M;
3.在stud表空间中创建学生表student的,要求sno为字符型数据,长度为2,主键;sname字符型数据,长度为10,唯一;ssex字符型数据,长度2,只能是男或女,sclass字符型数据,长度10,默认值‘计算131’
Createtablestudent(snochar
(2)primarykey,
snamechar(10)unique,
ssexchar
(2)check(ssexin(‘男’,‘女’)),
sclasschar(10)default‘计算131’)tablespacestud
4.向student表添加记录(‘01’,‘张三’,‘男’,‘计算131’),(‘02’,‘李斯’,‘男’,‘软件131’);将student表中李斯的班级改为计算131;删除学号为01的学生信息
Insertintostudentvalues(‘01’,‘张三’,‘男’,‘计算131’);
Insertintostudentvalues(‘02’,‘李斯’,‘男’,‘软件131’);
Updatestudentsetsclass=’计算131’wheresname=’李斯’;
Deletefromstudentwheresno=’01’
Commit;
5.修改student表,增加联系方式字段,字符型,长度11;删除班级字段
Altertablestudentaddlxfschar(11);
Altertablestudentdropcolumnsclass
以下程序使用emp表,dept表和salgrade表
6.查询工资高于500或者是岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J?
Selectt*fromempwheresal>500orjob=’MANAGER’andenamelike‘J%’
7.显示每个部门的平均工资和最高工资,显示部门名,平均工资,最高工资?
Selectdnameas部门名,avg(sal)as平均工资,max(sal)as最高工资fromemp,deptwhereemp.deptno=dept.deptnogroupbydname
8.查询每个员工的上级领导的姓名,显示雇员名,领导姓名?
(提示:
使用自连接)
SELECTworker.enameas雇员名,boss.enameas领导姓名
FROMempworker,empbossWHEREworker.mgr=boss.empno
9.创建雇员信息视图xin,显示雇员号,雇员名,岗位,部门名,地址,工资级别,并查询视图
Createviewxinas
selectempno,ename,job,dname,addr,salegrade
fromemp.dept,salgrade
whereemp.deptno=denpt.deptnoandsalbetweenlosalandhisal
select*fromxin
10.创建用户tigerr,密码t123,默认表空间为annimal
createusertigerridentifiedbyt123defaulttablespaceANNIMAL;
11.给tigerr赋予连接数据库,创建表,查询scott下emp表的权限,这三种权限都可以级联授予其他用户。
grantcreatesession,createtabletotigerrwithadminoption;
grantselectonscott.emptotigerrwithgrantoption;
grantresourcetotigerr;
12.创建角色myrole,将连接数据库,创建表,创建用户,创建角色,在任何模式修改表,完全访问emp表的权限赋予myrole。
createrolemyrole;
grantcreatesession,createtable,createuser,createrole,alteranytabletomyrole;
grantallonscott.emptomyrole;
13.创建包mypack,包中含有一个函数和一个过程,函数fun_newsal,用于计算员工的新工资,即输入员工姓名后,返回该员工的1.05倍工资(即sal值乘以1.05后返回)。
存储过程pro_sum,实现统计某个部门人数并输出。
(先创建函数和过程,然后再创建包)
createorreplacefunctionfun2(f_nameinvarchar2)
returnnumberis
v_salnumber(4);
begin
selectsal*1.05intov_salfromscott.empwhereename=f_name;
returnv_sal;
end;
存储过程
createorreplaceprocedurepro_sum(vdeptnoinvarchar2)
isv_resultnumber(5);
begin
selectcount(ename)intov_resultfromscott.empwheredeptno=vdeptno;
dbms_output.put_line(v_result);
end;
包头
createorreplacepackagemypack
is
functionfun2(f_nameinvarchar2)returnnumber;
procedurepro_sum(vdeptnoinvarchar2);
end;
包体
createorreplacepackagebodymypack
is
functionfun2(f_nameinvarchar2)
returnnumberis
v_salnumber(4);
begin
selectsal*1.05intov_salfromscott.empwhereename=f_name;
returnv_sal;
end;
procedurepro_sum(vdeptnoinvarchar2)
isv_resultnumber(5);
begin
selectcount(ename)intov_resultfromscott.empwheredeptno=vdeptno;
dbms_output.put_line(v_result);
end;
end;
14.创建存储过程pro_sum,该存储过程带一个字符型传入参数vdeptno,实现统计某个部门人数并输出,然后依次实现执行10号部门的人数。
Createorreplaceprocedurepro_sum(vdeptnoinvarchar2)
As
V_rsnumber(3);
Begin
Selectcount(*)intov_rsfromempwheredeptno=vdeptno;
Dbms_output.put_line(v_rs)
End;
Execpro_sum(‘10’)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle 数据库 oracle 数据库练习题3 oracle 数据库 练习题