oracle考试题.doc

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle基础测试试卷
姓名:学校/专业: 成绩:
一.选择题(20题,共60分)
1、Oracle数据库中为新创建的表分配的初始空间通常为多大?( B )
A、一个块
B、一个区
C、一个段
D、一个表空间
2、关于存储过程参数,正确的说法是( B )。

A、存储过程的输出参数可以是标量类型,也可以是表类型
B、存储过程输入参数可以不输入信息而调用过程
C、可以指定字符参数的字符长度(函数的()或者过程的(number/varchar2))
D、以上说法都不对
3、有一产品表(编号,名称,价格,数量,所属分类),下列语法不正确的是( D )。

A、select * from 产品表where价格>1000
B、select sum(价格) from 产品表group by 所属分类having max(价格)>1000
C、select所属分类,sum(价格) from 产品表where 价格>1000 group by 所属分类
D、select所属分类,sum(价格) from 产品表where max(价格)>1000 group by 所属分类
4、下列哪些是Oracle的伪列。

(ACD )(多选)
A、ROWID
B、ROW_NUMBER()
C、LEVEL
D、ROWNUM
E、COLUMN
5、在SQL*Plus环境中,删除触发器trg_emp的命令是( A )。

A、DROP TRIGGER trg_emp
B、DELETE TRIGGER trg_emp
C、REMOVE TRIGGER trg_emp
D、ALTER TRIGGER trg_emp REMOVE
6、单行( B )函数能够得到字符串的一部分?
A、INSERT
B、SUBSTR
C、LPAD
D、LEAST
7、利用游标来修改数据时,所用的。

FOR UPDATE充分利用了事务的哪个特性?( D )
A、原子性
B、一致性
C、永久性
D、隔离性
8、下列说法不正确的是()。

(多选)
A、在PLSQL自定义函数中如果包含UPDATE、DELETE、INSERT语句,不必在函数体内给出COMMIT
B、自定义函数可以在SQL语句中调用、也可以在PLSQL块中调用
C、自定义函数可以返回表类型
D、自定义函数中的参数可以是OUT类型
9、在Oracle数据库设计与实现中,要查询出是否为”空”条件的记录,需要使用( B )操作符。

A、BETWEEN
B、IS NULL
C、LIKE
D、!=
10、哪行代码有错误?( C )
A、SELECT dname,ename
B、FROM emp e,dept d
C、WHERE emp.deptno=dept.deptno
D、ORDER BY 1,2
11、在Oracle数据库设计与实现中,( C )提供对SQL的过程扩展。

A、iSQL*Plus
B、SQL*Plus
C、PL/SQL
D、对象存储
12、在Oracle中,用下列语句定义了一个过程:
CREATE OR REPLACE PROCEDURE test(a IN VARCHAR2,b IN OUT NUMBER,c OUT VARCHAR2)IS
BEGIN
........
END;
/
假定使用的变量都已定义,下面对过程test的调用语法正确的是()。

A 、test(‘string',50,v-str2)
B 、test(v-strl,v-numl,'String2')
C 、test(‘string',v-numl, v-str2)
D 、test(v-strl,20,v-str2)
13、哪个语句不会建立隐式事务?( D )
A、INSERT
B、UPDATE
C、DELETE
D、SELECT FOR UPDATE
14、如果查询表A(有3行数据)和表B(有4行数据),使用select * from a,b,返回的查询结果有多少行?( D )
A、7
B、1
C、0
D、12
15、你需要把NEW_CUST表中的新客户信息导入CUST和CUST_SPECIAL 表,如果客户信誉度大于10000,需要导入CUST_SPECIAL表,所有新客户信息都要导入CUST表,使用哪种技术可以尽快完成导入?()
A、外部表
B、MERGE 命令
C、INSERT多表插入命令
D、带有WITH CHECK OPTION子句的INSERT 命令
16、有一个函数CALCTAX
CREATE OR REPLACE FUNCTION calctax (sal NUMBER)
RETURN NUMBER
IS
BEGIN
RETURN (sal * 0.05);
END;
在SQL*PLUS环境执行该函数的正确方法是()。

A、执行命令CALCTAX(1000)
B、执行命令EXECUTE FUNCTION calctax
C、建立SQL*Plus环境变量X,执行命令:X := CALCTAX(1000)
D、建立SQL*Plus环境变量X,执行命令EXECUTE:X := CALCTAX
E、建立SQL*Plus环境变量X,执行命令EXECUTE:X := CALCTAX(1000)
17、在表PRODUCTS和ORDER_ITEMS中,执行以下语句查询PRODUCT_NAME和商品被订购的次数,执行该语句将导致:()SELECT p.product_name, i.item_cnt FROM (
SELECT product_id, COUNT (*) item_cnt FROM order_items GROUP BY product_id) i RIGHT OUTER JOIN products p ON i.product_id = p.product_id;
A、命令会成功执行,得出想要的结果
B、命令不会执行,因为子查询和外连接不能一起使用
C、命令不会执行,因为别名ITEM_CNT在外层不可见
D、命令不会执行,因为GROUP BY不能用于子查询中
18、执行以下MERGE命令的结果是()。

MERGE INTO t1
USING t2 ON (连接谓词)..
A、对T2中有T1中没有的行进行合并连接
B、对T1、T2中同名的列进行自然连接
C、T1和T2表的同名列交叉连接
D、T2中的每行记录,如果T1中有则更新,没有则插入T1
19、实例启动时数据库所处的状态是( C )。

A、MOUNT
B、OPEN
C、NOMOUNT
D、None
20、在进行关闭数据库的备份之前,哪三个命令可用于关闭数据库?(BCD )(多选)
A、SHUTDOWN ABORT.
B、SHUTDOWN NORMAL.
C、SHUTDOWN IMMEDIATE.
D、SHUTDOWN TRANSACTIONAL.
三、问答题(5题,共20分)
1、创建一张学生表student,包含两个字段(学号,姓名),并往表中写入学号为N01,姓名为小红的数据;
Insert student values();
2、表TFWCP已有产品名称(CPMC)字段,如何使select语句使查询结果自
动生成序号?
3、表:table1(FId,Fclass,Fscore),用最高效最简单的SQL列出各班成绩最高的列表,显示班级,成绩两个字段。

2、怎样解除PROCEDURE被意外锁定?
3、日期的各部分的常用的的写法:取时间点的格式为(2012-12-17)的写法:
三、编程题(2题,共20分)
1、用一条SQL语句算出商品A,B目前还剩多少?
表一(AAA)
商品名称mc 商品总量sl
A 100
B 120
表二(BBB)
商品名称mc 出库数量sl
A 10
A 20
B 10
B 20
B 30
Select mc,sl from bbb group by mc;
Select mc,aaa.sl – bbb.sl from aaa,( Select mc,sl from bbb group by mc) as bbb where aaa.mc = bbb.mc ;
2、用一条SQL 语句查询出每门课都大于80分的学生姓名
name kecheng fenshu
张三语文81
张三数学75
李四语文76
李四数学90
王五语文81
王五数学100
王五英语90
With table_a as(
Select name from stu where fenshu <= 80 group by name
)
Select name from table_a where name not in (select * from table_a);
答案
一、
1.B、
2.B、
3.D、
4.ACD、
5.A
6.B、
7.D、
8.ABCD、
9.B、10.C
11.C、12.C、13.D、14.D、15.C
16.E、17.A、18.D、19.C、20.BCD
二、
2、select rownum,cpmc from TFWCP
3、select fclass,max(fscore) from table1 group by fclass,fid
4、alter system kill session ,把那个session给杀掉,不过你要先查出她的
session id or 把该过程重新改个名字就可以了
5、SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD') FROM DUAL
三、
1、SELECT AAA.MC,(SL-E.SS) LEFT FROM AAA
JOIN(
SELECT MC,SUM(SL) SS FROM BBB
GROUP BY MC
)E
ON AAA.MC=E.MC
2、SELECT DISTINCT NAME FROM SSSSSS E
WHERE (
SELECT COUNT(*) FROM SSSSSS M
WHERE FENSHU>80 AND =
)=3。

相关文档
最新文档