《Oracle数据库应用》练习题及答案

更新时间:2023-03-08 10:23:40 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《Oracle数据库应用》

一、 选择题

1. 在Windows操作系统中,Oracle的____服务监听并接受来自客户端应用程序的连接请求。

A、OracleHOME_NAMETNSListener B、OracleServiceSID C、OracleHOME_NAMEAgent D、OracleHOME_NAMEHTTPServer

2. ORACLE中,用来判断列值是否为空的操作符是____

A、==NULL B、IS NULL C、 AS NULL D、 NULLIS 3. 在CUSTOMER中有一列为单价(PRICE),写一个SELECT命令显示所有单价在500以上的查询语句______。

A、SELECT * FROM CUSTOMER WHERE PRICE MORE THAN 500; B、SELECT * FROM CUSTOMER WHERE PRICE BETWEEN 500 AND *; C、SELECT * FROM CUSTOMER WHERE PRICE LIKE 'P0%'; D、SELECT * FROM CUSTOMER WHERE PRICE>=500;

4. 在Oracle中,使用HAVING子句也可以进行条件查询,以下选项说法是正确的是______.

A、 HAVING子句和WHERE子句相同 B、 HAVING子句用于行的条件查询 C、 HAVING子句用于已分组结果的条件查询 D、以上皆非 5. 在安装oracle时,自动开启了的账号是( ) A、System B、Sa C、Scott D、Administrator 6. 下列哪一项是Oracle数据库中最小的存储分配单元( ) A、表空间 B、段 C、盘区 D、数据块

7. ( )是一个很小的二进制文件,它维护着数据库的全局物理结构,用以支持数据库成功地启动和运行。创建数据库时,同时就提供了与之对应的控制文件。 A、数据文件 B、控制文件 C、重做日志文件 D、以上都不对 8. 若用户要连接数据库,则该用户必须拥有的权限是()

A、create table B、create index C、create session D、create user

9. 授予删除任何表的系统权限(DROP ANY TABLE)给user1,并使其能继续授该权限给其他用户,以下正确的SQL语句是() A、Grant drop any table to user1;

B、Grant drop any table to user1 with admin option; C、Grant drop table to user1;

D、Grant drop any table to user1 with grant potion;

10. 数据库中有两个用户scott和muuser,物资表wz是属于myuser用户的,但当前用户是scott,要求查询物资表wz(wno,wname,wtype,wunit)物资单位wunit列为null的记录,取结果的前5条记录显示,以下正确的SQL语句是() A、select * from scott.wz where wunit is null and rownum<5; B、select * from myuser.wz where wunit = null and rownum<5; C、select * from myuser.wz where wunit is null and rownum<6; D、select * form scott.wz where wunit is null and rownum<6; 11. 以下哪个表空间不能设置为OFFLINE。( ) A、USER B、SYSTEM C、TOOLS D、INDEX 12. 如何删除tester用户( ) A、 drop role tester; B、 drop user tester; C、 alter user tester; D、 delete user tester; 13. 分析以下SQL 命令:

SELECT price FROM inventory

WHERE price BETWEEN 1 AND 50 AND (price IN(55, 30, 95); 命令执行后的最可能的输出结果是:( )

A、 55 B、 30 C、 95 D 、51

14. 那一个查询语句能够提取当前的系统时间并且显示成“2013”的格式?( ) A、 Select to_char(sysdate, ’yyyy’) from dual;

B、 Select to_char(substr(sysdate,8,2), ’year’) from dual;

C、 Select to_date(sysdate, ’yyyy’) from dual;

D、 Select decode(substr(sysdate,8), ’YYYY’) from dual; 15. 以下对表空间描述正确的是?( ) A、 一个数据库只能有一个表空间

B、 数据库中表空间数量是没有限制的,但数据文件数量有限制 C、 一个表空间只能被一个用户所使用 D、 一个表空间可以管理多个数据文件 16. 以下对约束描述正确的是( )

A、 在建表的时候必须定义该表的主键约束,否则不能通过语句修改 B、 约束中唯一约束、主键约束都会自动创建唯一索引 C、 一个字段不能同时有主键约束和唯一约束 D、 一个字段可以即为主键又为外键 17. ()可以从过程返回多个值。

A、 使用IN参数 B、 使用OUT参数 C、 使用指针 D、 不能 18. 一下是同义词不具有的用途是( )。

A、 简化SQL语句 B、 隐藏对象的名称和所有者 C、 提供对对象的公共访问 D、 显示对象的名称和所有者 19. SQL *Plus中发出的下列语句:

SQL>selectceil(97.34),floor(97.34),round(97.34),trunc(97.34) from dual; 下列哪个函数不返回结果-97?( )

A、 ceil() B、floor() C、round() D、 trunc() 20. 以下哪个选项不是建立新的表空间时必须要确定的?( )

A、数据文件 B、表空间名称 C、数据文件的大小 D、数据文件最大值

二、 填空题

1. Oracle中运行指定的文件命令是_______

2. Oracle数据库系统的物理存储结构主要有3类文件组成,分别是_______文件、_______文件和控制文件。

3. 每个Oracle数据库都有一个或多个______________文件。

4. 在Oracle中,使用_______命令可显示表的结构,使用_______命令可提交对

表数据的修改。

5. Oracle中,进行逻辑备份与恢复时使用的导出命令是_________;导入命令是_______。

6. 一个PL/SQL程序块可以划分为三个部分:_________、____________和__________

7. 创建表employee的副本,包含表中全部记录:CREATE TABLEemployee_copy AS_______________________________;

8. 创建用户自定义函数可以使用__________________语句。

9. 显示游标首先要_____________,在使用时要_____________,使用完毕后要_____________。

10.包的创建分为_____________的创建和_____________的创建两部分。 11.过程参数和函数参数一样,也有三种类型,分别是in,_________和_____________。

三、 判断题

1. 回收一个用户的系统权限后,该用户传递给其他用户的权限会自动取消( ) 2. 视图是索引的另一种形式()

3. 一个数据文件可以隶属于不同表空间()

4. 对students表空间中的数据文件进行备份,students表空间可以处于online状态()

5. 在Oracle中创建用户时,若未提及DEFAULT TABLESPACE关键字,则Oracle就将system表空间分配给用户作为默认表空间。() 6. 可以使用CURRVAL和NEXTVAL伪列来访问序列。() 7. 以零作除数时会引发value_errror异常 ()

8. 触发器是一个被指定关联到一个表的数据对象,触发器是不需要调用的。( ) 9. 创建用户时,需要赋予新用户connect角色就能使它连上数据库。() 10.WITH CHECK OPTION表示使用视图更新数据时应满足视图定义中设置的条件 ()

四、 简答题

1. 简述数据完整性的分类(3分)

2. 简述PL/SQL语言的组成(3分)

3. 简单介绍表空间,并写出一种建立表空间的方法。(4分)

五、 程序题(40分,2题4分,其余每题3分)

Scott用户下有表emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL,COMM ,DEPTNO)和表dept(DEPTNO ,DNAME,LOC)其中emp表为雇员表,各字段的中文含义为:雇员表(雇员号,雇员名,职位,上级编号,入职时间,月工资,奖金,部门号)dept表为部门表,各字段的中文含义为:部门表(部门编号,部门名,部门所在地点)

1. 创建表空间data1,该表空间有两个数据文件data1和data2,初始大小分别是10M和20M。

2. 在data1表空间中创建部门表mydept的,要求deptno为字符型数据,长度为2,主键;dname字符型数据,长度为10,唯一;loc字符型数据,长度4,只能是北京,上海,天津。

3. 在data1表空间创建表myemp,字段名及类型内容同scott用户下的emp 4. 将所有销售人员(即职位为销售salesman)的奖金加100

5. 修改myemp表,增加性别字段,性别字段默认为男,性别字段的值只能是男或女

6. 查询myemp表,显示第三个字符为大写O的所有员工的姓名和工资? 7. 查询myem表,显示每个部门的每种岗位的平均工资和最低工资? 8. 查询平均工资低于2000的部门名和它的平均工资?

9. 创建只读的雇员信息视图xin,显示雇员号,雇员名,岗位,部门名,地址,工资级别,并查询视图 10.

创建用户myuser,密码m123,授予myuser连接数据库,创建表的

系统权限,并能够级联授权。 11.

授予myuser查询,修改,删除scott用户的emp表的权限,并能够

级联授权。 12.

创建存储过程pro_sum,该存储过程输入参数vdeptno,实现统计某

个部门人数并输出,执行该过程,显示10号部门的人数。 13.

创建一个system方案中的函数fn1,函数的作用为:将指定empno

号的记录中的sal字段值乘以1.05。

参考 答案

一、 选择题(20分)

1---5 ABDCA 6—10 DBCBC 11 --15BBBCD 16—20 BBDAD

二、 填空题(20分)

@文件名 2. 数据文件重做日志文件 3. 物理数据文件(data file) 4. desc

12.Updata 5. EXPIMP 6.声明部分、执行部分和异常处理部分。

7. select * from employee 8. Create function 9. 定义打开关闭 10. 包头包体 11. out 和 in out

三、 判断题(10分)

1---10 ××××√ √×√√√

四、 简答题(10分)

1.简述数据完整性的分类(3分)

答:实体完整性 域完整性和参照完整性 2.简述PL/SQL语言的组成(3分)

? 数据定义语句(create alter drop ) ? 数据操纵语句(insert update delete select) ? 数据控制语句(grant revoke )。

3.简单介绍表空间,并写出一种建立表空间的方法。(4分)

答:表空间是Oracle逻辑存储结构的最高层,一个数据库就是若干个表空间组成的。每个表空间对应操作系统中的一个或多个数据文件,但每个数据文件只能属于一个表空间。

Create tablespace表空间名datafile 数据文件名;

五、 程序题(40分,2题4分,其余每题3分)

1.创建表空间data,该表空间有两个数据文件data1和data2,初始大小分别是10M和20M。 createtablespace data

datafile 'c:\\data1.dbf' size 10M reuse,'c:\\data2.dbf' size 20M reuse autoextend off;

2. 在data表空间中创建部门表mydept的,要求deptno为字符型数据,长度为2,主键;dname字符型数据,长度为10,唯一;loc字符型数据,长度4,只能是北京,上海,天津。

Create table mydept(deptno varchar2(2) primary key,dname char(10) unique,log varchar2(4) check(loc in (‘北京’,’上海’,’天津’)))

3. 在data表空间创建表myemp,字段名及类型内容同scott用户下的emp Create tablemyemp as select * from scott.emp default tablespace data1

4. 将所有销售人员(即职位为销售salesman)的奖金加100 Update myemp set comm=comm+100 WHERE JOB=’salesman’

5. 修改myemp表,增加性别字段,性别字段默认为男,性别字段的值只能是男或女

ALTER TABLE MYEMP add sex char(2) default ‘男’ check(性别=‘男’ or 性别=‘女’)

6. 查询myemp表,显示第三个字符为大写O的所有员工的姓名和工资? selectename,sal from scott.emp where ename like '__O%'; 7. 查询myem表,显示每个部门的每种岗位的平均工资和最低工资? selectdeptno,job,max(sal),avg(sal) job,deptno;

8.查询平均工资低于2000的部门名和它的平均工资?

select dname as 部门名,avg(sal)as 平均工资 from scott.emp,scott.dept where scott.emp.deptno=scott.dept.deptno group by dname having avg(sal)<2000;

9.创建只读的雇员信息视图xin,显示雇员号,雇员名,岗位,部门名,地

址,并查询视图

Create view xin as select empno,ename,job,dname,loc from meemp,medept where myemp.deptno=mydept.deptno

from

myemp

group

by

Select * from xin 10.

创建用户myuser,密码m123,授予myuser连接数据库,创建表的

系统权限,并能够级联授权。E

Create user myuser identified by m123;

Grant create session,create table to myuser with admin option; 11.

授予myuser查询,修改,删除scott用户的emp表的权限,并能够

级联授权。

Grant select ,update,delete on scott.emp to myuser with grant option 12.

创建存储过程pro_sum,该存储过程输入参数vdeptno,实现统计某

个部门人数并输出,执行该过程,显示 10号部门的人数。 Create or replace procedure pro_sum(vdeptno in varchar2) As

V_rsnumber(3); Begin

Select count(*) into v_rs from emp where deptno=vdeptno; Dbms_output.put_line(v_rs) End;

Exec pro_sum(‘10’) 13.

创建一个system方案中的函数fn1,函数的作用为:将指定empno

号的记录中的sal字段值乘以1.05。

答:create or replace function system.fn1(v_idscott.emp.empno% type) return number as

new_salaryscott.emp.sal% type; begin

selectsal into new_salary fromscott.emp where empno=v_id; new_salary:=new_salary*1.05; returnnew_salary; end;

本文来源:https://www.bwwdw.com/article/7n66.html

Top