Oracle数据库面试题总结
2017年04月27日 22:41:44

阅读数:9271

1、SQL语句分类

DQL(数据查询语言)select

DML(数据操作语言)insert、delete、update

DDL(数据定义语言)create、drop、alter

DCL(数据控制语言)grant:把权限授予用户、revoke:把权限从用户收回

TPL(TCL,事务控制语言):commit、rollback

2、Oracle是怎样分页的

Oracle用rownum进行分页

分页语句的步骤:

a.最内层sql,查询要分页的所有数据

b.第二层sql,通过rownum伪列确定显示数据的上限,并且给查询的数据添加rownum伪列的值

c.最外层sql,设置显示数据的下限

select*from

(select a.*,rownum r from

(select*from表名 where条件 orderby列) a

whererownum<=页数*条数) b where r>(页数-1)*条数

3、truncate和delete区别

1)Truncate和delete都可以将数据实体删掉,truncate操作不记录到rollback日志,同时数据不能恢复

2)Truncate是数据定义语言(DDL),delete是数据操作语言(DML)

3)Truncate不能对视图进行操作,delete操作不会腾出表空间的内存

4、说说Oracle中经常使用到的函数

length长度、lower小写、upper大写、to_date转化日期、to_char转化字符、to_number转化数字Ltrim去左边空格、rtrim去右边空格、substr截取字符串、add_month增加或减掉月份、

5、主键有几种?

复合型、整数型、字符型

6、怎样创建一个索引,索引使用的原则,有什么优缺点

create index 索引名 on 表名(列名)

原则:

建议索引列建立not null约束

经常与其他表进行连接的表,在连接列上建立索引

优缺点:

创建索引能大大加快检索速度,加强表与表的连接,但是创建索引很占用空间

7、使用oracle伪列删除表中的重复数据中的一条

delete fromtable t where t.rowid!=(select max(t1.rowid) from table t1 wheret.name=t1.name)

8、如何只显示重复数据

select * fromtable group by id having count(*)>1

9、什么是数据库的映射

就是将数据库中表与字段对应到模型层类名与属性的过程

10、如何设计数据库

首先分析项目,看看项目中有多少实体(矩形),为每个实体添加属性(椭圆),明确实体之间的关系(菱形),绘制E-R图,将E-R图转换成表格

11、如何实现数据库的优化

1)调整数据库结构的设计:需要考虑是否使用分区功能、是否建立索引等

2)调整数据库的SQL语句

3)调整服务器的内存分配

4)调整硬盘I/O

5)调整操作系统参数

12、关系型数据库的关系操作有哪些?

选择(查询某些行)、投影(查询某些列)、链接(把多张表连接获取数据)、增加、删除、修改

13、你知道哪些菲关系型数据库,与关系型数据库的区别是?

14、SQL语句与SQL*PLUS命令的区别

1)SQL是关系型数据库的标准操作语言,而SQL*PLUS是一个客户端工具,除了执行标准的SQL外,还可以执行工具本身的一些命令。

2)SQL语句不可以缩写,而SQL*PLUS命令可以缩写

15、oracle数据库中如何显示表的结构

新建命令窗口,输入desc 表名

16、oracle中数据库对象的命名规则

1)必须由字母开始,长度在1-30个字符之间

2)包含字母、数字、_、$、#

3)同一个Oracle服务器所拥有的对象名不能重复

4)名字不能为Oracle 的保留字

5)大小写不敏感

17、数据库的三大范式是什么?

1)第一范式:原子件,要求每一列的值不能再拆分了

2)第二范式:一张表只描述一个实体(若列中有冗余数据,则不满足)

3)第三范式:所有列与主键直接相关

18、事务的特性(ACID)是指什么?

1)原子性(Atomic):事务中的各项操作,要么全做要么全不做,任何一项操作的失败都会导致整个事务的失败

2)一致性(Consistent):事务结束后系统状态是一样的

3)隔离性(Isolated):并发执行的事务彼此无法看到对方的中间状态

4)持久性(Durable):事务完成后,即使发生灾难性的故障,通过日志和同步备份可以在故障发生后重建数据

19、MySQL数据库与Oracle数据库有什么区别

1)应用方面:MySQL是中小型应用的数据库,一般用于个人项目或中小型网站及论坛。Oracle属于大型数据库,一般在具有相当规模的企业应用。

2)自动增长的数据类型方面:MySQL有自动增长的数据类型。Oracle没有自动增长的数据类型,需要建立一个自增序列

3)group by用法:MySQL中group by在select语句中可以随意使用,但是在Oracle中如果查询语句中有组函数,那其他列名必须是组函数处理过的或者是group by子句中的列,否则报错

4)引号方面:MySQL中用双引号包起字符串,Oracle中只可以用单引号包起字符串

面试题: 数据库 oracle数据库 已看1 意义不大 有用的更多相关文章

  1. spring BasicDataSource 数据源配置 sqlserver数据库 oracle数据库 mysql数据jdbc配置

    spring BasicDataSource 数据源配置 sqlserver数据库 oracle数据库 mysql数据jdbc配置 jdbc.properties 文件信息如下: ---------- ...

  2. 面试题: 数据库操作面试 已看1 很典型的sql面试题

    摘要:今天参加了大展公司的一个电话面试,那位先生首先问我查询一个表的问题,条件是:1.一个数据表,有username字段.2.查询数据表中姓名姓张的.姓李的.姓刘的总数,并展现在一张表中.我当时就糊涂 ...

  3. 面试题:oracle数据库行转列的问题

    今天我一个学弟问了一个面试题: 有表A,结构如下:A: p_ID p_Num s_id1 10 011 12 022 8 013 11 013 8 03其中:p_ID为产品ID,p_Num为产品库存量 ...

  4. 面试题:各大公司Java后端开发面试题总结 已看1 背1 有用 链接有必要看看

    ThreadLocal(线程变量副本)       --整理 Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量. 采用空间换时间,它用于线程间的数据隔离,为每一个 ...

  5. 数据库 | Oracle数据库查表空间使用情况

    平时在使用Oracle的时候,如果业务中的数据量激增.数据量变大,很有可能就会有表空间不足的情况,需要重点关注.今天我们分享下如何查看表空间的使用情况. 一.如何查看使用状况 我们废话不说,先直接贴上 ...

  6. 数据库 Oracle数据库对象一

    常见的数据库对象 表:基本的数据存储集合,由行和列组成 视图:从表中抽出的逻辑上相关的数据集合 序列:提供有规律的数值 索引:提高查询的效率 同义词:给对象起别名 create table语句 --c ...

  7. 面试题: java面试经历 已看1 抢红包如何分配每个人抢到的钱 有用 难点的面试题

    2018.03.09 深圳乐唯科技 我看了下感觉这公司貌似挺不错的,面试官人也挺好的,氛围应该很不错,可惜我实力不足,唉,接续努力,下面把面试中印象较深的三个问题写一下. 面试问题1:数据库删除重复数 ...

  8. 数据库 Oracle数据库性能优化

    --在Oacle数据库涉及到全表扫描的SQL查询(top,count)中, --现场用户删除表中大部分数据,只保留1W条数据,但是查询仍然很慢,检查磁盘IO,发现磁盘IO不是很高 --经过分析Oacl ...

  9. 数据库 Oracle数据库对象二

    视图 --视图是对表逻辑抽象 --视图的好处:简化查询 --视图是一种虚表 --视图建立在已有表的基础上,视图赖以建立的这些吧称为基表. --向视图提供数据内容的语句为select语句,可以将视图理解 ...

随机推荐

  1. hdu4612 无向图中随意加入一条边后使桥的数量最少 / 无向图缩点+求树的直径

    题意如上,含有重边(重边的话,俩个点就能够构成了边双连通). 先缩点成树,在求数的直径,最远的连起来,剩下边(桥)的自然最少.这里学习了树的直径求法:第一次选随意起点U,进行bfs,到达最远的一个点v ...

  2. Mybatis之Mapper动态代理

    一.什么是Mapper的动态代理 采用Mapper动态代理方法只需要编写相应的Mapper接口(相当于Dao接口),那么Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同Dao接 ...

  3. Eclipse如何删除插件

    删除Eclipse安装的插件方法: help -> install new softWare -> what is already installed ->选中 要卸载的插件 -&g ...

  4. exception_action

    for i in range(3, -2, -1): try: print(4 / i) except Exception as e: print(Exception) print(e)

  5. Optimizer in SQL - Catalyst Optimizer in Spark SQL

    SELECT sum(v) FROM (    SELECT score.id, 100+80+score.math_score+ score.english_score AS v    FROM p ...

  6. d3 - bar chart

    用 D3.js 做一个简单的柱形图. 做柱形图有很多种方法,比如用 HTML 的 div 标签,或用 svg . 推荐用 SVG 来做各种图形.SVG 意为可缩放矢量图形(Scalable Vecto ...

  7. python 搜集参数的共有项和所有项

    搜集共性项和所有项 ###搜集共有参数值 def intersect(*args): res=[] for x in args[0]: for other in args[1:]: if x not ...

  8. 2.2链表 链表中倒数第k个结点

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAApQAAAENCAIAAAA+LGJ9AAAgAElEQVR4nO2dXWsc2Z2H81X8CUKom4

  9. CUDA: 常量内存与事件

    常量内存: 常量内存用于保存在核函数执行期间不会发生变化的数据,在变量面前添加  __constant__  修饰符: __constant__  Sphere  s[SPHERES]; cudaMe ...

  10. 【shell】常用的正则表达式

    一.校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9 ...