1、 第 9 页 共9页Oracle 数据库测试题姓 名: 得 分: 一、选择题1)PL/SQL块中可以使用下列( )命令。(选择两项)a)TRUNCATEb)DELETEc)SAVEPOINTd)ALTER TABLE2)有语句如下:TYPE curtype IS REF CURSOR RETURN book.price%TYPE;表book的列的数据类型是NUMBER(5);则( )。(选择一项)a)Curtype可以返回INTEGER类型数据b)Curtype可以返回NUMBER(5,2)类型数据c)Curtype可以返回VARCHAR2(10)类型数据d)以上皆非3)使用下列( )将 Nu
2、ll 值转换为实际值。(选择三项)a)nvl()b)To_char()c)To_date()d)To_number()4)你定义了一个对象类型myOBJ,要基于该类型来创建表tab1,语句为( )。(选择一项)a)CREATE TABLE tab1 OF myOBJ;b)CREATE TABLE myOBJ OF tab1;c)CREATE TABLE tab1 AS myOBJ;d)CREATE TABLE tab1 TYPE OF myOBJ;5)在FUNCTION主体中,可能有( )个RETURN语句。(选择三项)a)0b)1c)2d)36)有一段PL/SQL程序如下所示:var1 :=
3、 10;LOOPEXIT WHEN var1 12;var1 := var1 +1; DBMS_OUTPUT.PUT_LINE(A);END LOOP;输出为( )。(选择一项)a)Ab)Ac)AAd)AAA7)在表tab1中有列为col1,其数据类型为INTEGER,在PL/SQL的DECLARE部分声明了一个变量var1,语句为:var1 tab1.col1%TYPE;不久后,执行了语句:ALTER TABLE tab1 MODIFY(col1(NUMBER(5,2);则var1的数据类型为( )。(选择一项)a)整数型b)数字型c)字符型d)以上皆非8)当两位用户中的每一位都对一个单独的
4、对象进行了锁定,而他们又要获取对方对象的锁时,将会发生( )。(选择一项)a)共享锁b)死锁c)排他锁9)Oracle数据库由一个或多个称为( )的逻辑存储单元组成。(选择一项)a)表b)表空间c)行d)单元10( )可以从过程返回多个值。(选择一项)a)使用IN参数b)使用OUT参数c)使用指针d)不能11)使用( )命令提交一个事务。(选择一项)a)Commitb)Rollbackc)Savepoint12)在创建序列的过程中,下列( )选项指定序列在达到最大值或最小值后,将继续从头开始生成值。(选择一项)a)Cycleb)Nocyclec)Cached)Nocache13)数据包airl
5、ine中有函数book_ticket,其定义如下:FUNCTION book_ticket(para1 CHAR)RETURN DATE IS-下列( )程序段正确地调用该数据包的函数。(选择一项)a)DECLAREvalue1 CHAR(10);BEGIN-value1 := airline.book_ticket(10);-b)DECLAREvalue1 CHAR(10);BEGIN-value1 := airline.book_ticket(10);-c)DECLAREvalue1 DATE;BEGIN-value1 := airline.book_ticket(10);-d)DECLA
6、REvalue1 DATE;BEGIN-value1 := airline.book_ticket(10);-二、问答题1、事务是什么?事务的ACID特性指的是什么?oracle数据库的默认隔离级别是? 2、oracle中truncate和delete命令有何区别?3、Oracle中char和varchar2数据类型有什么区别?有数据”test”分别存放到char(10)和varchar2(10)类型的字段中,其存储长度及类型有何区别? 4、参见如下表结构出版社: 出版社代码 char(2), 出版社名称 varchar2(32) 图书: 图书编号 char(8), 图书名称 varchar2
7、(128), 出版社代码 char(2), 作者代号 char(4), 图书简介 varchar2(128) 作者: 作者代号 char(4), 作者名称 varchar2(10), 性别 char(1), 年龄 number(3), 文学方向 varchar2(64) 获奖名单: 获奖日期 date, 获奖人员 char(4) 编写SQL语句,找出“作者”库中没有出现在“获奖名单”库中所有作者信息的SQL语句(提示:使用not in以及外关联,并说明哪种方法最优。) 5、编写一个SQL语句,从以下记录中找到唯一记录,并将其flag列更新为Y No name sex flag1 张三 1 N1
8、 张三 1 N1 张三 1 N 6、Oracle中,需要在查询语句中把空值(NULL)输出为0,如何处理? 7、见第四题“获奖名单”表,写出SQL语句,查询出在上一个月获奖的人员。 8、见第四题“图书”表,在表上对图书名称、出版社代码、作者代号创建了组合索引,请问在执行如下语句时会不会利用到索引。Select * from 图书 where 图书名称=xxxx Select * from 图书 where 图书名称=xxxx and 出版社代码=bbSelect * from 图书 where 图书名称=xxxx and 作者代号=ddd Select * from 图书 where 出版社代
9、码=yyy 三、数据库设计题背景:FUN TRAVELS公司是一家旅游预定的公司。该公司雇佣了若干名业务员,分别安排在全国各地50处分之机构,通过其中任何一处分支机构的业务员,客户都可以预定一次旅行。第一部分: 创建新用户tours 给tours 赋角色 connect, resource使用tours创建以下各表,并根据描述指定合适的数据类型及字段大小:表名:operator表名:cruise列描述列描述oper_cdoper_nmoper_addoper_telnooper_faxnooper_email旅行业务员代码名字地址电话号码传真号码电子邮件地址cruise_cdcruise_nm
10、oper_cddes_citycountry_nmdurationpriceairfare旅行代码。旅行名称旅游业务员代码目的地城市国家名称旅行时间(按天计)每位价格(按美元计)飞机票价含在价格中 (Y是,N否)。表名:cruise_book表名:customer列描述列描述cruise_cdstart_dttot_seatsseats_avail旅行代码行程开始日期座位总数未预定座位数cust_cdcust_nmcust_addtel_noe_mailcruise_cdstart_dtno_of_per客户代码姓名住址电话号码电子邮件地址所预定旅行代码所预定旅行开始日期预定人员数使以下三张表
11、的三个列实现自动编号,创建序列并使用,如下所示:operator:oper_cdcruise:cruise_cdcustomer:cust_cd向表设置主键约束,如下所示:operator:oper_cdcruise:cruise_cdcruise_book:cruise_cd, start_dtcustomer:cust_cd向表设置外键约束,如下所示:cruise:oper_cd参照operator 表中的oper_cd cruise_book:cruise_cd参照 cruise 表中的 cruise_cd customer:cruise_cd参照cruise_book表中的cruise
12、_cd ,start_dt向表设置唯一约束,如下所示:operator:oper_telno向表设置检查约束,如下所示:cruise:duration 0, price 0, airfare = Y or airfare = N向表设置默认约束,如下所示:customer:no_of_per = 1第二部分:1对每个表添加数据如下。operator:cruisecruise_bookcustomer1. 显示当年七月到八月预约的顾客姓名2. 显示所有预期收入低于20,00,00的旅游线及其预期收入的总和。 3. 使用子查询显示自10月以来没有一笔业务的业务员名单。4. 查询行程大于8天的旅游线的代码、名称、目的城市、行程和价格。5. 将所有线路的价格增加 15 % 。6. 查找所有业务员的业务量。7. 查找每个业务员到现在为止没完成的业务量。9