请选择 进入手机版 | 继续访问电脑版

学JAVA网

 找回密码
 立即注册

Oracle数据库面试题总结

[复制链接]
发表于 2018-11-26 17:13:55 |显示全部楼层
1、SQL语句分类
http://xuejava.org/thread-323-1-1.html
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中只可以用单引号包起字符串
---------------------
原文:[url=https://blog.csdn.net/shine_a/article/details/70880577]哈宁姑娘[/url]

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|学JAVA网

GMT+8, 2018-12-13 20:17 , Processed in 0.151545 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

Copyright © 2015-2018 xuejava网 / 鲁ICP备17054568号-1
回顶部