oracle数据开发笔试题,Oracle笔试题集

2015-10-04 06:30:02

阅读( 210 )

Normal 0 false false false MicrosoftInternetExplorer4

一、选择题

1、 Oracle存储结构正确的是()

A. tablespace–segment–osblock–block

B. tablespace–segment–extent–block

C. tablespace– extent — segment–block

D. tablespace– extent — block — segment

2、 表EMPLOYEES结构为

(

EMPLOYEE_ID NUMBER(6) not null primary key,

FIRST_NAME VARCHAR2(20) unique,

LAST_NAME VARCHAR2(25),

EMAIL VARCHAR2(25) not null,

PHONE_NUMBER VARCHAR2(20),

HIRE_DATE DATE,

JOB_ID VARCHAR2(10),

SALARY NUMBER(8,2),

COMMISSION_PCT NUMBER(2,2),

MANAGER_ID NUMBER(6),

DEPARTMENT_ID NUMBER(4)

)

以下哪几个语句可算出表中记录,多选 ()

A.select count(*) from EMPLOYEES

B.select count(EMPLOYEE_ID) from employees

C.select count(FIRST_NAME) from employees

D.select count(EMAIL) from employees

E.select count(JOB_ID) from employees

3、 表EMPLOYEES的结构为:

(

EMP_ID NUMBER(4) NOT NULL

LAST_NAME VARCHAR2(30) NOT NULL

FIRST_NAME VARCHAR2(30)

DEPT_ID NUMBER(2)

JOB_CAT VARCHAR2(30)

SALARY NUMBER(8,2)

)

下面哪条语句可以查出各个dept_id的最大salary值和最小salary值

并且它的最值小于5000最大值大于15000?()

A. SELECT dept_id, MIN(salary), MAX(salary)

FROM employees

WHERE MIN(salary) 15000;

B. SELECT dept_id, MIN(salary), MAX(salary)

FROM employees

WHERE MIN(salary) 15000

GROUP BY dept_id;

C. SELECT dept_id, MIN(salary), MAX(salary)

FROM employees

HAVING MIN(salary) 15000;

D. SELECT dept_id, MIN(salary), MAX(salary)

FROM employees

GROUP BY dept_id

HAVING MIN(salary) 15000;

E. SELECT dept_id, MIN(salary), MAX(salary)

FROM employees

GROUP BY dept_id, salary

HAVING MIN(salary) 15000;

4、 SQL Server中在A数据库下如何访问B数据库中的C表:()

A.在A数据库中通过建立数据库链接指向B,然后直接访问select * from c

B.在B数据库中授权给A,然后直接访问select * from c

C.直接访问select * from c

D.直接访问select * from B..c

5、 Oracle数据库中用户A的一个存储过程用到用户B下的表Tab_B及函数Fun_B,正确的赋权语句是( )

A.在A用户模式执行 grant select on Tab_B to A; grant execute on Fun_B to A;

B.在B用户模式执行 grant select on Tab_B to A; grant execute on Fun_B to A;

C.在A用户模式执行 grant select on Tab_B to B; grant execute on Fun_B to B;

D.在B用户模式执行 grant select on Tab_B to B; grant execute on Fun_B to B;

6、 以下数据库是Oracle语法的是:()

A.select sysdate into v_time from dual;

B.select v_time = sysdate;

C.set v_time:=sysdate;(v_time为已定义的时间类型变量)

D. v_time=sysdate

7、 分别用 1.Insert, 2.delete, 3.update处理1000条数据,对数据库资源(回滚段)使用率由高到低的顺序是().

A.123

B.132

C.231

D.312

8、 请看以下oracle中存储过程

begin

begin

语句1>

exception

when others then

dbms_output.put_line(‘错误1′);

end;

begin

语句2>

dbms_output.putline(‘错误2′);

end;

exception

when others then

dbms_output.put_line(“错误3″);

end;

请问,当语句1>,语句2>出错时,该存储过程输出字符串分别是什么?( )

A.错误1,错误3

B.错误1,错误2

C.错误1,错误2,错误3

D.错误2,错误3

9、 SQL Server数据库中获取系统时间的内部函数是:()

A.sysdate

B.getdate()

C.currentdate

D.date()

10.在Oracle数据库中,请描述语句SELECT decode(sign(-1),1,‘a’,‘b’) FROM dual返回结果:()

A.1

B.-1

C.a

D.b

二、简答题

1、 Oracle数据库中,如何增加表空间userdata的大小,请写出具体数据库语句?(以windows操作系统为例说明)

2、 简要叙述TRUNCATE, DROP, DELETE之间的关系。

3、举例说明while..loop/for..loop循环语句,如插入1..10的值到一个单字段数据表(结构自定义)。

4、解释data block , extent 和 segment的区别(这里建议用英文术语)

5、已知表T1中A字段含有重复的数据(A字段非空),请在空白处完成SQL语句,其中第一条语句查询T1标准的记录总数,第二条语句查询T1标准A字段不重复记录总数

三、编程题(10个空格,每个空格2分):

1、 作家信息表Auths包含两个字段

Author_Code

VARCHAR2(50)

Salary

NUMBER(10)

其中Author_Code为作家代码,主键。Salary为作家工资额,非空。

现由于工资调整,对于作家代码在‘A00001′和‘A00006′;之间的作家工资少于或等于五百,则给该作家增加15%的工资,对于大于500到1000之间则增加12%,其它则增加10%。如下程序是通过游标方式实现的,请填写程序中相应的空格。

DECLARE

– 声明两个变量,用来接收游标返回的工资和作家代码

v_Salary ()

v_Code ()

v_ErrText VARHCAR(200);

– 声明游标c_Salary,该游标的结果集是Auths表中作家代码(Author_Code)值是

– ‘A00001′到‘A00006′的工资值(Salary)和作家代码值(Author_Code)

CURSOR c_Salary IS

SELECT Salary,

Author_Code

FROM Auths

WHERE Author_Code >=’A00001′

AND Author_Code <=’A00006′;

BEGIN

– 打开游标

LOOP

–游标循环,将游标查询结果集中的一行保存到两个临时变量中

() c_Salary INTO v_Salary, v_Code;

– 当结果集中没有行是退出

EXIT WHEN ();

– 如果该作家的工作少于或等于五百,则给该作家增加15%的工资

– 500到1000之间则增加12%,其他增加10%

IF v_Salary <= 500 THEN

UPDATE Auths

SET Salary = ()

WHERE Author_Code = v_Code;

ELSIF v_Salary <= 1000 THEN

UPDATE Auths

SET Salary = Salary + Salary * 0.12

WHERE Author_Code = v_Code;

()

UPDATE Auths

SET Salary = Salary + Salary * 0.1

WHERE Author_Code = v_Code;

END IF;

END LOOP;

();

();

EXCEPTION

WHEN OTHERS THEN

CLOSE c_Salary;

ROLLBACK;

v_ErrText := ();

DBMS_OUTPUT.PUT_LINE(‘程序异常终止,出现一下错误:’||v_ErrText);

END;

分享给朋友:

亲~ 如果您有更好的答案 可在评论区发表您独到的见解。

您想查看更多的信息:

面试题

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值