oracle常见面试题及答案

  • 格式:doc
  • 大小:120.50 KB
  • 文档页数:17

下载文档原格式

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

需求: 写一个邮件系统, 采用oracle+jsp+servlet来完成.

1.创建一个表空间。

2.创建一个用户,将用户赋到表空间上.

3.给用户赋权限.

4.以新建用户登录,创建一个程序包.

5.在表空间上建表,两个表

用户表

Id int

Uname varchar

Upass varchar

邮件表

eId int

Title varchar

Contents varchar

Uid int 外键

附件表

Id int

Filepath varchar

Eid int 外键

6.作增,删,改,查的操作,全部封装到存储过程中

7.写一个java程序来调用.

1.解释FUNCTION,PROCEDURE和PACKAGE区别

答:function 和procedure是PL/SQL代码的集合,通常为了完成一个任务。procedure 不需要返回任何值, 而function将返回一个值. 在另一方面,Package是为了完成一个商业功能的一组function和procedure的集合。

2.取某个序列的当前值的PL/SQL语句怎么写?

答:SELECT 序列名.CURRVAL FROM DUAL;

Create sequence 名字 start with x increment by y maxvalue z nocycle

3.说明ORACLE数据库实例与ORACLE用户的关系?

答:实例可以包含多个用户,一个用户只能在一个实例下

4.创建用户时,需要赋予新用户什么权限才能使它连上数据库?

答:grant CONNECT [on 表名] to 用户名

5.比较truncate和delete命令?

答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL(data defining language数据定义语言),它移动HWK,不需要rollback segment(处理事务回滚操作)而Delete是DML(data manufacturing language数据操作语言)操作,需要rollback segment(处理事务回滚操作)且花费较长时间

6.给出数据的相关约束类型?

答:主键约束,外键约束,非空约束,唯一约束,检查约束。

7.说明索引的类型与作用?

答:索引类型上分为聚集索引,非聚集索引. 其作用是加快查询速度。

8.获取某个字符字段的最后3个字符的函数是什么?

答:select substr (字段,(length(字段)-3)) from 表

9.取当前系统时间点日期(不包括年月)的SQL写法是怎样的?

答:Select substr (to_char(sysdate,’YYYYMMDDh24hh:MM:SS’),5) from dual;

to_char(sysdate,’YYYYMMDDh24hh:MM:SS’)

10.返回大于等于N的最小整数值?

答:select ceil(1.5) from dual;

floor(1.5)

11.将根据字符查询转换后结果,规则为:’A’转换为’男’,’B’转换为’女’,其他字符转换为’未知’,请用一个SQL语句写出。

答:select decode(字符,’A’,’男’,’B’,’女’,’未知’) from dual;

12.如何搜索出前N条记录?

答:select * from 表 where Rownum <= N;

13.如何搜索出第N~M条记录?

答:select * from 表 where Rownum <= 100 Minus select * from 表 where Rownum <= 90;

Select * from ( Select rownum rn, t.* from (Select * from 表名) t where rownum<=大值 ) where rn>=小值

14.有一个数据表(TEST),字段如下:

ID number

PARENT_ID number

NAME Varchar(20)

请使用PL/SQL来按父子层次关系查询出该表的所有数据

答:Select * from test a, test b Where a.parent_id = b.id;

15.怎样用SQL语句实现查找一列中的第N大值?

答:select * from (select * from 表 order by 列名 Desc) where Rownum <= N Minus select * from (select * from 表 order by 列名 Desc) where Rownum <= N-1;

select * from 表order by 列名Desc

1 2 3 4 5 6 7 8 9

9 8 7

8 9

请按要求写出下列题目的答案:

∙Empno—-雇员编号

∙Ename—-雇员名

∙Job—-工作类型

∙Mgr—-雇员的经理

∙Hiredate—-雇用日期

∙Sal—-每月工资

∙Comm—-销售奖金

∙Deptno—-部门编号

∙Dname—-部门名

∙Loc—-地址

17.下面哪两个查询可以用来确定员工Blake所在部门的名称? B C E

a. SELECT dname FROM dept WHERE ename =(…BLAKE‟);

b. SELECT d. dname FROM dept d NATURAL JOIN emp e

WHERE e.ename =…BLAKE‟;(主健和外键的名称和类型必须完全相等)

c. SELECT dname FROM dept d,emp e

WHERE e.ename =(…BLAKE‟)

AND d.deptno = e.deptno;

d. SELECT dname FROM dept JOIN emp USING (dname)

WHERE ename =…BLAKE‟;

e. SELECT dname FROM dept JOIN emp

ON dept.deptno = emp.deptno

WHERE ename =…BLAKE‟;

18. 如果Sal包含各个员工的月薪,那么下面哪一个查询将显示EMP表中的各个员工的年薪? ( d )

a. SELECT sal * 12 …Annual Salary‟FROM emp;

b. SELECT salary * 12 …annual FROM emp;