Oracle笔试题集(一)

2014-11-24 00:58:22 · 作者: · 浏览: 23



一、选择题


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已知表T1A字段含有重复的数据(A字段非空),请在空白处完成SQL语句,其中第一条语句查询T1标准的记录总数,第二条语句查询T1标准A字段不重复记录总数


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


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


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


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


DECLARE


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


v_Salary ()


v_Code ()


v_ErrText VARHCAR(200);


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


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