oracle 数据库开发面试题
近期參加了数场面试,总结一下竞聘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 数据库开发面试题的更多相关文章
- oracle 数据库开发面试题,当时笔试的时候一个没做出来,现附原题及答案
1. ID123567810111215 表名tt,用sql找出ID列中不连续的ID,例如其中没有的4: --创建表及数据 CREATE TABLE tt(ID INTEGER); INSERT IN ...
- php开发面试题---数据库SQL调优的几种方式
php开发面试题---数据库SQL调优的几种方式 一.总结 一句话总结: 创建索引:尽量避免使用or或者like,或者sql中的正则 存储查询中间结果 可以加sphinx搜索技术 查询优化 主从数据库 ...
- php开发面试题---lavarel和tp的区别是什么(呕心整理)
php开发面试题---lavarel和tp的区别是什么(呕心整理) 一.总结 一句话总结: 反思的回顾非常有用,因为决定了我的方向和技巧 以战养己,这是非常非常好的方式 主要从大小.功能.安全性.操作 ...
- php开发面试题---1、php常用面试题一(PHP有哪些特性)
php开发面试题---1.php常用面试题一(PHP有哪些特性) 一.总结 一句话总结: ①.混合语法:php独特混合了C,Java,Prel以及PHP自创的语法. ②.为动态网页而生:可以比CGI或 ...
- J2EE进阶(十四)超详细的Java后台开发面试题之Spring IOC与AOP
J2EE进阶(十四)超详细的Java后台开发面试题之Spring IOC与AOP 前言 搜狐畅游笔试题中有一道问答题涉及到回答谈谈对Spring IOC与AOP的理解.特将相关内容进行整理. ...
- 【理论面试篇】收集整理来自网络上的一些常见的 经典前端、H5面试题 Web前端开发面试题
##2017.10.30收集 面试技巧 5.1 面试形式 1) 一般而言,小公司做笔试题:大公司面谈项目经验:做地图的一定考算法 2) 面试官喜欢什么样的人 ü 技术好. ...
- [转]linux C/C++服务器后台开发面试题总结
linux C/C++服务器后台开发面试题总结 https://www.cnblogs.com/nancymake/p/6516933.html 一.编程语言 1.根据熟悉的语言,谈谈两种语言的区别 ...
- 前端开发面试题-JavaScript(转载)
本文由 本文的原作者markyun 收集总结. 介绍js的基本数据类型. Undefined.Null.Boolean.Number.String. ECMAScript 2015 新增:Symbol ...
- 各大公司java后端开发面试题
各大公司Java后端开发面试题总结 ThreadLocal(线程变量副本)Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量.采用空间换时间,它用于线程间的数据隔离 ...
随机推荐
- 0502 php简单了解
准备工作: 安装好wamp,配置站点:apache2.4.9\conf\httpd.conf 注意事项: 1.必须有分号 2.不要有无意义空行,会以空格形式输出. 3.变量,关键字(if,for..) ...
- Servlet初始化与异步支持
Shared libraries(共享库) / runtimes pluggability(运行时插件能力) 1.Servlet容器启动会扫描,当前应用里面每一个jar包的 ServletContai ...
- 使用TortoiseSVN碰到的几个问题(2)-冲突解决, 图标重载
8)解决冲突 冲突分为两种:文件冲突---当两名(或更多)开发人员修改了同一个文件中相邻或相同的行时就会发生文件冲突.下面的属性冲突应该也属于文件冲突. 树冲突---当一名开发人员移动.重命名.删除一 ...
- bcg库使用心得两则
作者:朱金灿 来源:http://blog.csdn.net/clever101 最近帮同事解决了两个BCG库的使用问题,特记录下来. 一是在outlook风格停靠栏上创建对话框的做法.代码如下: C ...
- Eclipse之调试代码和返回
编写代码时,经常会遇到各种莫名其妙的问题,为了检测程序是哪里出现问题,我们通过断点调试来判断哪一步出错 一.断点 在需要断点的地方,在左侧双击鼠标设置断点,可设置多个 去掉断点:在断点上双击一下,没有 ...
- Swiper 3D flow轮播使用方法
swiper 的3d轮播效果,移动端适用 (1). 如需使用Swiper的3d切换首先加载3D flow插件(js和css). <head> <link rel="styl ...
- jquery相关常用的工具函数
1.弹出提示框: function prompt(msg){ $("<div>" + msg + "</div>").css({ &qu ...
- react获取url查询参数
继承自React.Component的this.props.location.query对象下有当前url的各种查询参数.简单的例子:在控制台打印这个对象 import React from 'rea ...
- Day 22 面向对象编程
面向对象基础 面向对象编程(抽象) 对象:特征和技能的结合体 面向对象编程:一个个对象进行交互 优点:扩展性非常强 缺点:逻辑非常复杂 类与对象 类(类别):一系列具有相同特征和技能的对象 现实世界中 ...
- PAT_A1120#Friend Numbers
Source: PAT A1120 Friend Numbers (20 分) Description: Two integers are called "friend numbers&qu ...