《oracle数据库》练习题.docx

上传人:b****6 文档编号:3361913 上传时间:2022-11-22 格式:DOCX 页数:10 大小:20.39KB
下载 相关 举报
《oracle数据库》练习题.docx_第1页
第1页 / 共10页
《oracle数据库》练习题.docx_第2页
第2页 / 共10页
《oracle数据库》练习题.docx_第3页
第3页 / 共10页
《oracle数据库》练习题.docx_第4页
第4页 / 共10页
《oracle数据库》练习题.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

《oracle数据库》练习题.docx

《《oracle数据库》练习题.docx》由会员分享,可在线阅读,更多相关《《oracle数据库》练习题.docx(10页珍藏版)》请在冰豆网上搜索。

《oracle数据库》练习题.docx

《oracle数据库》练习题

 

一、选择题(每题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’)

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

当前位置:首页 > 小学教育 > 语文

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

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