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为每个线程维护一个本地变量.采用空间换时间,它用于线程间的数据隔离 ...
随机推荐
- 0423-mysql查询语句大全
建表.数据插入代码: #新建学生表 drop table if exists student; create table student( sno ) not null primary key com ...
- C语言和C++的应用领域都在哪些?学C语言好,还是学习C++好?
从事嵌入式开发十几年,基本上围绕着这两种编程语言展开,都可以直接操作底层的编程语言,用的越熟练越是感觉工具属性越强.虽然两种编程语言分属于不同的编程思想,用的时间长了觉得差异也不是很大,现在就个人的从 ...
- Linux安装java jdk、mysql、tomcat
安装javajdk 1.8 检查是否安装 rpm -qa | grep jdk rpm方式安装 下载java1.8 jdk http://download.oracle.com/otn-pub/jav ...
- Serializable资料整理
1. 序列化 简单的说就是为了保存 内存中各种对象的状态(是实例变量,不是方法),并且可以把保存的对象读取出来. 虽然保存 object states的方法很多,但是Java提供了一种保存对象状态的机 ...
- Django学习案例一(blog):六. 开发博客内容页面
目标:某条博客具体内容的展示,可返回博客主页面,可进行评论. 1. 编辑路由 一篇博客,要将其找出来,就需要有一个唯一的标识.Django 的模型中默认有一个唯一的且未自增长的主键,即 id 字段.我 ...
- SmartUpload实现文件上传
(一)SmartUpload组件简介 SmartUpload组件 专门用于实现文件上传及下载的免费组件 (二)SmartUpload组件特点 使用简单:编写少量代码,完成上传下载功能 能够控制上传 ...
- dubbo之直连提供者
在开发及测试环境下,经常需要绕过注册中心,只测试指定服务提供者,这时候可能需要点对点直连,点对点直联方式,将以服务接口为单位,忽略注册中心的提供者列表,A 接口配置点对点,不影响 B 接口从注册中心获 ...
- vue-router在同一个路由下切换,取不到变化的路由参数
最近用vue写项目的时候碰到一个问题,在同一个页面下跳转,路由地址不变,路由参数有变化,一开始只是在data里取路由的参数,发现根本取不到变化的路由参数. 例如:订单列表也跳转详情页,跳转方法如下 & ...
- 在Unity中json文件的解析方式
using System.Collections; using System.Collections.Generic; using UnityEngine; using LitJson; using ...
- How to use pthread_create && mutex?
1 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <pthread. ...