近期參加了数场面试,总结一下竞聘oracle 开发岗位最常问到哪些问题:



1、delete 与 truncate 差别?

1)truncate 是DDL语句。delete 是DML语句;

2)truncate 速度远快于 delete。

原因是:当我们运行delete操作时全部表数据先被copy到回滚表空间,数据量不同花费时间长短不一。

而truncate是直接删除数据不进回滚表空间。

3)接(2)这也就导致了delete数据后我们能够执行rollback进行数据回滚,而truncate则是永久删除不能回滚。

4)truncate 操作不会触发表上的delete触发器,而delete会正常触发;

5)truncate语句不能带where条件意味着仅仅能所有数据删除,而delete可删除部分数据;

6)truncate 操作会重置表的高水位线(High Water Mark),而delete不会。

ps: 有关高水位线HWM知识清參考文章:http://blog.csdn.net/indexman/article/details/25910255

2、解释一下数据库三范式?

请參考:http://blog.csdn.net/indexman/article/details/19907731

3、NVL与NVL2两个函数的使用方法和差别?

NVL (expr1, expr2):expr1为NULL,返回expr2;不为NULL,返回expr1。注意两者的类型要一致

NVL2 (expr1, expr2, expr3) :expr1不为NULL。返回expr2;为NULL,返回expr3。expr2和expr3类型不同的话,expr3会转换为expr2的类型

看一下官方演示样例:commission即为工资提成

HR@orcl> SELECT last_name, NVL(TO_CHAR(commission_pct), 'Not Applicable')
2 "COMMISSION" FROM employees
3 WHERE last_name LIKE 'B%'
4 ORDER BY last_name; LAST_NAME COMMISSION
------------------------- ----------------------------------------
Baer Not Applicable
Baida Not Applicable
Banda .1
Bates .15
Bell Not Applicable
Bernstein .25
Bissot Not Applicable
Bloom .2
Bull Not Applicable

HR@orcl> SELECT last_name, salary, NVL2(commission_pct,
2 salary + (salary * commission_pct), salary) income
3 FROM employees WHERE last_name like 'B%'
4 ORDER BY last_name; LAST_NAME SALARY INCOME
------------------------- ---------- ----------
Baer 10000 10000
Baida 2900 2900
Banda 6200 6820
Bates 7300 8395
Bell 4000 4000
Bernstein 9500 11875
Bissot 3300 3300
Bloom 10000 12000
Bull 4100 4100

4、集合操作符minus和interset

如果表A和表B数据例如以下:

表A:

data

----------

a

b

b

c

表B

data

----------

b

c

d

d

问1:SELECT DATA FROM A  MINUS SELECT DATA FROM B; 运行结果?

--------------------------------------------------------------------------------------------------

答案:

a

问2:SELECT DATA FROM A  INTERSECT SELECT DATA FROM B; 运行结果?

答案:

b

c

集合操作符总结:

1)UNION:由每一个查询 选择的 全部不反复的行组成。

并集不包括反复值,
默认按第
1 个查询的第
1 列升序排列。

2)UNION ALL: 由每一个查询 选择的 全部的行,全然并集包括反复值,
不排序。

3)  MINUS : 在第一个查询中, 不在后面查询中的行。不包括反复, 按第1
个查询的第
1
列升序排列。

4)INTERSECT: 取每一个查询结果的交集, 不包括反复行, 按第1
个查询的第
1 列升序排列。

敬请期待!

------------------------------

Dylan    Presents.

oracle 数据库开发面试题的更多相关文章

  1. oracle 数据库开发面试题,当时笔试的时候一个没做出来,现附原题及答案

    1. ID123567810111215 表名tt,用sql找出ID列中不连续的ID,例如其中没有的4: --创建表及数据 CREATE TABLE tt(ID INTEGER); INSERT IN ...

  2. php开发面试题---数据库SQL调优的几种方式

    php开发面试题---数据库SQL调优的几种方式 一.总结 一句话总结: 创建索引:尽量避免使用or或者like,或者sql中的正则 存储查询中间结果 可以加sphinx搜索技术 查询优化 主从数据库 ...

  3. php开发面试题---lavarel和tp的区别是什么(呕心整理)

    php开发面试题---lavarel和tp的区别是什么(呕心整理) 一.总结 一句话总结: 反思的回顾非常有用,因为决定了我的方向和技巧 以战养己,这是非常非常好的方式 主要从大小.功能.安全性.操作 ...

  4. php开发面试题---1、php常用面试题一(PHP有哪些特性)

    php开发面试题---1.php常用面试题一(PHP有哪些特性) 一.总结 一句话总结: ①.混合语法:php独特混合了C,Java,Prel以及PHP自创的语法. ②.为动态网页而生:可以比CGI或 ...

  5. J2EE进阶(十四)超详细的Java后台开发面试题之Spring IOC与AOP

    J2EE进阶(十四)超详细的Java后台开发面试题之Spring IOC与AOP 前言   搜狐畅游笔试题中有一道问答题涉及到回答谈谈对Spring IOC与AOP的理解.特将相关内容进行整理.    ...

  6. 【理论面试篇】收集整理来自网络上的一些常见的 经典前端、H5面试题 Web前端开发面试题

    ##2017.10.30收集 面试技巧 5.1 面试形式 1)        一般而言,小公司做笔试题:大公司面谈项目经验:做地图的一定考算法 2)        面试官喜欢什么样的人 ü  技术好. ...

  7. [转]linux C/C++服务器后台开发面试题总结

    linux C/C++服务器后台开发面试题总结  https://www.cnblogs.com/nancymake/p/6516933.html 一.编程语言 1.根据熟悉的语言,谈谈两种语言的区别 ...

  8. 前端开发面试题-JavaScript(转载)

    本文由 本文的原作者markyun 收集总结. 介绍js的基本数据类型. Undefined.Null.Boolean.Number.String. ECMAScript 2015 新增:Symbol ...

  9. 各大公司java后端开发面试题

    各大公司Java后端开发面试题总结 ThreadLocal(线程变量副本)Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量.采用空间换时间,它用于线程间的数据隔离 ...

随机推荐

  1. DCOM 找不到 office word 的解决方法

    1. 在运行里面  输入     comexp.msc -32  2.在“DCOM配置”中,为IIS账号配置操作Word(其他Office对象也一样)的权限. 具体操作:“组件服务(Component ...

  2. [NOI2015,LuoguP2146]软件包管理器------树剖

    ***题目链接戳我*** 又是在树上瞎搞滴题目.... 我们如果以安装的软件为1,未安装的软件为0,那么软件改变的数量即树上权值总和的数量,涉及到区间修改,区间查询,考虑树剖 分析完毕,似乎没啥好说的 ...

  3. 剑指offer笔记

    1.在定义类的赋值描述符成员函数时,有以下几点要注意: 1)判断是否是自己赋值给自己 2)返回值是const类的引用(为了连续赋值) 3)参数是const类的引用 4)如果数据成员中有指针,注意要深拷 ...

  4. MyBatis动态条件、一对多、整合spring(二)

    输入映射和输出映射 Mapper.xml映射文件定义了操作数据库的sql,每一个sql是一个statement,映射文件是mybatis的核心. parameterType输入类型 1.传递简单类型 ...

  5. JavaScript中字符串运算符的使用

    字符串运算符是用于两个字符串型数据之间的运算符,它的作用是将两个字符串连接起来.在JavaScript中,可以使用+和+=运算符对两个字符串进行连接运算.其中,+运算符用于连接两个字符串,而+=运算符 ...

  6. [原创]PM2使nodejs应用随系统启动

    1.安装 npm install pm2 -gd 2.启动 pm2 start ./bin/www 3.pm2 save 4.pm2 startup 5.pm2 save 注:上面几个步骤有几个坑: ...

  7. js函数-参数传递

    写js的时候,函数是不可避免的,几乎90%的js都是由函数组成的,函数之间考什么连接,参数! 好了,用代码的运行结果说明问题. function fn1(str,strs){ var str=&quo ...

  8. 实现三联tab切换特效

    当移动到菜单“小说”,“非小说”,“少儿”时菜单背景变换,并显示相应内容: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitio ...

  9. Python3中替代Python2中cmp()函数的新函数(gt,ge,eq,le,lt)

    原文出处:http://blog.csdn.net/Artprog/article/details/52197779 Python3中已经不能使用cmp()函数了,被如下五个函数替代: import ...

  10. Python这些问题你会吗?

    inal作用域的代码一定会被执行吗? 正常的情况下,finally作用域的代码一定会被执行的,不管是否发生异常.哪怕是调用了sys.exit函数,finally也是会被执行的,那怎么样才能让final ...