当前位置:文档之家› oracle常见面试题及答案

oracle常见面试题及答案

需求: 写一个邮件系统, 采用oracle+jsp+servlet来完成.1.创建一个表空间。

2.创建一个用户,将用户赋到表空间上.3.给用户赋权限.4.以新建用户登录,创建一个程序包.5.在表空间上建表,两个表用户表Id intUname varcharUpass varchar邮件表eId intTitle varcharContents varcharUid int 外键附件表Id intFilepath varcharEid 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 nocycle3.说明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 numberPARENT_ID numberNAME 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 列名Desc1 2 3 4 5 6 7 8 99 8 78 9请按要求写出下列题目的答案:∙Empno—-雇员编号∙Ename—-雇员名∙Job—-工作类型∙Mgr—-雇员的经理∙Hiredate—-雇用日期∙Sal—-每月工资∙Comm—-销售奖金∙Deptno—-部门编号∙Dname—-部门名∙Loc—-地址17.下面哪两个查询可以用来确定员工Blake所在部门的名称? B C Ea. SELECT dname FROM dept WHERE ename =(…BLAKE‟);b. SELECT d. dname FROM dept d NATURAL JOIN emp eWHERE e.ename =…BLAKE‟;(主健和外键的名称和类型必须完全相等)c. SELECT dname FROM dept d,emp eWHERE 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 empON dept.deptno = emp.deptnoWHERE ename =…BLAKE‟;18. 如果Sal包含各个员工的月薪,那么下面哪一个查询将显示EMP表中的各个员工的年薪? ( d )a. SELECT sal * 12 …Annual Salary‟FROM emp;b. SELECT salary * 12 …annual FROM emp;c. SELECT annual sal * 12 FROM emp;d. SELECT sal * 12 FROM emp;19.下面哪一个查询将显示存储在EMP表中的所有数据? Aa. SELECT * FROM emp;b. SELECT % FROM emp;c. SELECT ^ FROM emp;d. SELECT _ FROM emp;20.在执行下面的查询时,下面哪能一种说法反映了将会发生的情况? BSELECT ename fROM emp e,emp m WHERE e.mgr = m.empno;a. 这个查询将产生一个自我联接,显示各个员工的经理的姓名b. 将显示一个多义性错误,并且不会执行这个语句c. 这个查询将执行一个完全外部联接,并显示没有为其指定经理的员工的姓名d. 这个查询将执行一个右外部联接,显示不是经理的员工的姓名21.下面哪些关键字可以用来创建一个不等连接?选出所有正确的选项. Ea. NATURAL JOINb. JOIN… USINGc. OUTER JOINd. JOIN… ONe. 以上都不可以—-使用任何JOIN关键字都不能创建不等连接22.下面哪一个查询只返回包含DEPT表中而没有在EMP表中列出的部门号? Ca. SELECT deptno FROM dept NATURAL JOIN emp WHERE deptno NOT IN emp;b. SELECT deptno FROM dept MINUS deptno FROM emp;c. SELECT deptno FROM dept MINUS SELECT deptno FROM emp;d. SELECT deptno FROM dept JOIN emp ON dept.deptno<>emp.deptno;e. SELECT deptno FROM emp MINUS SELECT deptno FROM dept;23.下面哪一个查询将显示名为King的员工的工号? Aa. SELECT empno FROM emp WHERE ename = …% KING‟;b. SELECT empno FROM emp WHERE ename = …_ ING‟;c. SELECT empno FROM emp WHERE ename LIKE KING;d. SELECT empno FROM emp WHERE ename = KING;e. 以上查询都不对24.下面哪一个查询将显示销售部在1981年聘用的所有员工? Ba. SELECT * FROM emp WHERE dname =‟SALES‟AND hiredate LIKE‟%81′;b. SELECT * FROM emp NATURAL JOIN dept WHERE dname =‟SALES‟AND hiredate LIKE‟%81′;c. SELECT * FROM emp WHERE dname =‟SALES‟OR hiredate LIKE‟%81′;d. SELECT * FROM emp NATURAL JOIN dept WHERE dname =‟SALES‟AND hiredate LIKE‟%1981′;25.下面哪一个查询将显示存储在EMP表中的各个员工的姓名和职务?选择所有正确的查询. Ca. SELECT ename,job AS”Job Title”FROM emp;b. SELECT ename,job “Job Title”FROM emp;c. SELECT ename,job FROM emp;d. SELECT ename,job …Job TITLE‟FROM emp;e. SELECT ename,job …Job Title‟FROM emp;26.下面哪一种说法最准确地说明了下面的SELECT语句的结果? ASELECT DISTINCT job,ename FROM emp;a. 结果中返回的每一行都是惟一的b. 各个职务在结果中只显示一次c. 各个职务将只显示一次,并随之显示具有该职务的各个员工的姓名d. 结果将按照员工姓名排序27.下面哪一个子句用来选择表中的某些列? Aa. SELECTb. FROMc. WHEREd. ORDER BY28.下面哪一个查询将显示年薪至少为10000美元的所有员工的姓名? Da. SELECT ename FROM emp WHERE sal*12>10,000;b. SELECT ename FROM emp WHER E sal*12>‟10,000′;c. SELECT ename FROM emp WHERE sal*12=>10000;d. SELECT ename FROM emp WHERE sal*12>=10000.00;e. 上面的语句都不正确29.下面哪些查询将按照员工姓名的顺序显示各个员工的号码?选出所有正确的查询. 无a. SELECT ename,ename FROM emp ORDER BY empno;b. SELECT ename,ename FROM emp ORDER BY ename;c. SELECT ename,ename FROM emp ORDER BY 1;d. SELECT ename,ename FROM emp ORDER BY 2;e. SELECT ename,ename ORDER BY ename;30.下面哪一个查询将显示月薪至少为1200美元但是少于2000美元的各个员工的姓名? Da. SELECT ename FROM emp WHERE sal BETWEEN(1200,2000);b. SELECT ename FROM emp WHERE sal BETWEEN 1200 and 2000;c. SELECT ename FROM emp WHERE sal>=1200 AND <2000;d. SELECT ename FROM emp WHERE sal>=1200 AND sal <2000;e. SELECT ename FROM emp WHERE sal>1200 AND sal <2000;31.下面哪一个子句用来限制查询返回的行? Ca. SELECTb. FROMc. WHEREd. ORDER BY32.下面哪一个运算符用来执行模式搜索? Da. INb. BETWEENc. IS NULLd. LIKE33.下面哪些查询在结果中不包括部门30中的任何员工?选出所有正确的答案. Ba. SELECT * FROM emp WHERE deptno! =30;b. SELECT * FROM emp WHERE deptno<>30;c. SELECT * FROM emp WHERE deptno^30;d. SELECT * FROM emp WHERE deptno =30;34.下面哪一个查询将显示没有佣金的所有员工? Ba. SELECT ename FROM emp WHERE comm = NULL;b. SELECT ename FROM emp WHERE comm IS NULL;c. SELECT ename FROM emp WHERE comm LIKE NULL;d. SELECT ename FROM emp WHERE comm LIKE …NULL‟;35.下面哪一个查询将返回在销售部或会计部工作并且月薪至少为2000美元的所有员工的姓名?选出所有正确的答案. A B C Da. SELECT ename FROM emp NATURAL JOIN dept WHERE dnameIN(‟SALES‟,'ACCOUNTING‟)AND sal>=2000;b. SELECT ename FROM emp JOIN dept ON emp.deptno = dept.deptno WHERE sal >= 2000 AND d name = …SALES‟OR dname =‟ACCOUNTING‟;c. SELECT ename FROM emp JOIN dept USING(deptno) WHERE sal >= 2000 AND (dname = …SALES‟OR dname =…ACCOUNTING‟);d. SELECT ename FROM emp NATURAL JOIN dept WHERE sal >= 2000 AND (dname = …SALES‟OR dname =…ACCOUNTING‟);36.下面哪一个子句用来按照某种顺序显示查询的结果? Da. SELECTb. FROMc. WHEREd. ORDER BY37.在PL/SQL块中,下面哪一部分是必需的? Ba. 声明b. 可执行c. 异常处理d. 结束38.下面哪一个参数”不”是过程接受的参数? Aa. INPUTb. OUTc. INOUTd. IN39.如果在PL/SQL块中使用NUMBER数据类型声明了一个变量,但是在创建时没有初始化它,那么将为这个变量指定什么值? Ca. 0b. 1c. NULLd. 99940.下面哪一种循环不需要用户执行OPEN命令来打开显式游标? Da. 基本循环b. WHILE循环c. IF循环d. 游标FOR循环43.哪一个程序包可以用来显示PL/SQL块中的一个变量的内容? Ba. PUT_LINKb .DBMS_OUTPUT.put_linec. SERVEROUTPUTd. DISPLAY_OUT44.下面哪一个属性可以用来指定游标处理的行数? Aa. % ROWCOUNTb. % ISOPENc. % FOUNDd. % NOTFOUND45.下面哪一个属性可以用来为记录指定一行的结构? Da. % FOUNDb. % TYPEc. % STRUCTUREd. % ROWTYPE46.下面哪些属性可以用来控制循环的执行?选出所有正确的答案. C Da. % ROWCOUNTb. % ISOPENc. % FOOUNDd. %NOTFOUND47.下面哪些项目可以用来在PL/SQL块中初始化一个变量?选出所有正确的答案. Ca. DEFAULTb. =c. : =d. <>50.下面哪一个符号可以用来在Oracle9i中执行一个脚本文件? Ca. %b. $c. @d. !完成下列操作,写出相应的SQL语句51. 创建表空间neuspace,数据文件命名为neudata.dbf,存放在d:\data目录下,文件大小为200MB,设为自动增长,增量5MB,文件最大为500MB。

相关主题