栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > SEO面试题

Oracle笔试题集

SEO面试题 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Oracle笔试题集

一、选择题

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) < 5000 AND MAX(salary) > 15000;

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

FROM employees

WHERe MIN(salary) < 5000 AND MAX(salary) > 15000

GROUP BY dept_id;

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

FROM employees

HAVINg MIN(salary) < 5000 AND MAX(salary) > 15000;

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

FROM employees

GROUP BY dept_id

HAVINg MIN(salary) < 5000 AND MAX(salary) > 15000;

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

FROM employees

GROUP BY dept_id, salary

HAVINg MIN(salary) < 5000 AND MAX(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;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/299542.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号