Oracle数据库相关经典面试题
金九银十的面试季节,最近我会多发一些面试题相关的文章,因为墨白也要开始找工作了大家一起加油哈 ! ! !
oracle下有自动增长类型的字段吗?若无,如何实现自增长的功能 ?
答∶ 没有,实现自增长需要序列与DML触发器的配合。
有哪几种事务隔离级别,他们都什么区别?
答∶ ORACLE中有两种事务 只读事务与读写事务。隔离级别 未提交读,提交读,可重复读,串行读,ORACLE支持提交读与串行读,默认隔离级别为提交读。
实例与数据库的关系 ?
答∶ 实例管理一个数据库的内存空间与一组进程,一个实例必须对应一个数据库,一个数据库起码包含一个实例。
事务的理解,如事务的特点,oracle中何时开始,何时结束?
答∶ ORACLE事务在执行第一条可执行的SQL语句时开始,到一条COMMIT、ROLLBACK语句或退出数据库时事务结束。
利用ROLLBACK语句可以在COMMIT命令前随时撤消或回退一个事务。可以回退整个事务,也可以会退部分事务,但是不能回退一个已经被提交的事务。
回退部分事务的ROLLBACK命令为:ROLLBACK to savepoint
存储点名:存储点是用户放入事务中的标记,用来表示一个可被回退的位置。存储点通过在事务中放入一个SAVEPOINT命令而被插入。
该命令的语法是:SAVEPOINT 存储点名如果在ROLLBACK语句中没有给出存储点名,则整个事务被回。
实例的理解,与数据库的对应关系
答∶ Oracle是用实例来进行数据库管理的,实例在用户和orale数据库之间充当中间层的角色。每当在服务器上启动数据库时,就在内存中创建一个Oracle实例,即Oracle为数据库分配内存和创建并启动一个或多个Oracle进程,然后由实例加载并打开数据库,最后由这个实例来访问和控制硬盘中的数据文件。
触发器中能用COMMIT,为什么?
答∶ 在触发器中不能使用COMMIT;等事务控制语句。因为触发器是事务触发的如果有事务控制语句就会影响到触发它的事务。即连带触发它的语句之前的已经完成的没有提交的语句都要受到影响。这是会影响到数据的一致性的。
解释函数,存储过程,包
答∶ 都是命名块,函数与过程是pl/sql代码的集合,通常是为了完成一个业务,过程可以不返回任何值,但函数必须有返回值。包是为了完成某个完整功能的一组函数与过程的集合。
比较truncate和delete命令?
答∶ 两者都可以用来删除表中所有的记录。区别在于:truncate是DDL(data defining language数据定义语言),不需要rollback segment(处理事务回滚操作) 而Delete是DML(data manufacturing language数据操作语言)操作,需要rollback segment(处理事务回滚操作)且花费较长时间。
Oracle 悲观锁和乐观锁
答∶ 悲观锁是对数据的冲突采取一种悲观的态度,假设数据肯定会冲突,在数据开始读取的时候就把数据锁定住。乐观锁就是认为数据一般情况下不会造成冲突,只有在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让用户返回错误的信息,让用户决定如何去做。悲观锁是通过在sql语句上加入 for update,乐观锁可以通过增加一列version或者timestamp在应用程序中实现,Hibernate采用乐观锁的版本戳。
索引的作用?和它的优点缺点是什么?
答∶ 索引就一种特殊的查询表数据库的搜索引擎可以利用它加速对数据的检索。它很类似与现实生活中书的目录不需要查询整本书内容就可以找到想要的数据。索引可以是唯一的创建索引允许指定单个列或者是多个列。缺点是它减慢了数据录入的速度同时也增加了数据库的尺寸大小。
触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别?
答∶ 事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。通常事前触发器可以获取事件之前和新的字段值。语句级触发器可以在语句执行前或后执行,而行级触发在触发器所影响的每一行触发一次。
通过索引查询数据比全表扫描要快.但是我们也必须注意到它的代价索引需要空间来存储,也需要定期维护, 每当有记录在表中增减或索引列被修改时,索引本身也会被修改. 这意味着每条记录的INSERT,DELETE,UPDATE将为此多付出4,5 次的磁盘I/O. 因为索引需要额外的存储空间和处理,那些不必要的索引反而会使查询反应时间变慢.使用索引查询不一定能提高查询性能。
PL/SQL语句块包含哪些部分?
答∶ Pl/sql 的块结构包括:定义部分,执行部分,异常处理部分。
Oracle中字符串用什么符号链接?
答∶ Oracle中使用 || 这个符号连接字符串 如 ‘abc’ || ‘d’
Oracle是怎样分页的?
答∶ Oracle中使用rownum来进行分页, 这个是效率最好的分页方法,hibernate也是使用rownum来进行oralce分页的。
SELECT
*
FROM
( SELECT rownum r, a FROM tabName WHERE rownum <= 20 )
WHERE
r > 10
数据库事务的特性?
答∶ 原子性、一致性、隔离性、持久性。
数据库优化?
答∶ 建索引、使用游标、批处理、使用分页、使用存储过程、设置缓存尽可能设大一点。
sql语句执行顺序?
答∶ FROM:对FROM子句中的前两个表执行笛卡尔积(Cartesian product)(交叉联接),生成虚拟表VT1
ON:对VT1应用ON筛选器。只有那些使为真的行才被插入VT2。
OUTER(JOIN):如 果指定了OUTER JOIN(相对于CROSS JOIN 或(INNER JOIN),保留表(preserved table:左外部联接把左表标记为保留表,右外部联接把右表标记为保留表,完全外部联接把两个表都标记为保留表)中未找到匹配的行将作为外部行添加到 VT2,生成VT3.如果FROM子句包含两个以上的表,则对上一个联接生成的结果表和下一个表重复执行步骤1到步骤3,直到处理完所有的表为止。
WHERE:对VT3应用WHERE筛选器。只有使为true的行才被插入VT4.
GROUP BY:按GROUP BY子句中的列列表对VT4中的行分组,生成VT5.
CUBE|ROLLUP:把超组(Suppergroups)插入VT5,生成VT6.
HAVING:对VT6应用HAVING筛选器。只有使为true的组才会被插入VT7.
SELECT:处理SELECT列表,产生VT8.
DISTINCT:将重复的行从VT8中移除,产生VT9.
ORDER BY:将VT9中的行按ORDER BY 子句中的列列表排序,生成游标(VC10).
TOP:从VC10的开始处选择指定数量或比例的行,生成表VT11,并返回调用者。
Oracle数据库相关经典面试题相关推荐
- mysql面试题sql语句_数据库MySQL经典面试题之SQL语句
数据库MySQL经典面试题之SQL语句 1.需要数据库表1.学生表 Student(SID,Sname,Sage,Ssex) --SID 学生编号,Sname 学生姓名,Sage 出生年月,Ssex ...
- Oracle数据库相关命令
从cmd窗口进入SQL命令行 sqlplus / as sysdba; 查询所有用户 (1)使用具有DBA权限的账号登录数据库. (2)执行如下命令. SQL> select username ...
- Oracle 数据库相关主题:用户、权限、常用管理工具、常用命令
1. Oracle数据库中SYS.SYSTEM.DBSNMP.SYSMAN 四种用户有什么区别? SYS用户(超级管理员):sys用户具有"SYSDBA"或者"SYSOP ...
- 数据库书籍大师推荐的Oracle数据库相关的书籍,收集汇总。
文章结束给大家来个程序员笑话:[M] 1.阿里童家旺推荐 FROM:http://www.dbthink.com/archives/724 Oracle数据库关相的书籍推荐 concepts guid ...
- Oracle数据库相关
一.什么是Oracle数据库? 1.所有的关系型数据库存储数据集合就是磁盘上的文件,Oracle数据库就是一组文件的集合: 2.Oracle数据库是由:数据文件.控制文件以及日志文件构成的: 二.什么 ...
- oracle数据库相关知识,Oracle数据库相关知识点复习
一.Oracle数据库中常用的数据类型varchar2(长度)可变长字符串char(长度)定长number()表示整数或者浮点数number(8) number(8,2)clog字符的大对象blog二 ...
- 通过system用户操作oracle数据库相关
1.了解system用户下有多少个表,每个表的作用: select a.TABLE_NAME, b.COMMENTS,a.NUM_ROWS,a.OWNER,a.TABLESPACE_NAME from ...
- oracle数据库相关知识点,Oracle数据库小知识点整理
-- 数据库存储数据 -- 市面上主流的数据库有哪些 -- 甲骨文 oracle mysql -- IBM db2 金融 -- 微软 sqlserver --这些是关系型数据库. -- ...
- 数据库SQL经典面试题详解
SQL面试题不外乎增删改查,对于这种类型的题目,我的经验是先把每个表的关联关系搞清楚,它们之间是通过哪些字段关联的,可以在纸上画出关联图,再去编写SQL就不会那么头大了. 下面是四张表的关联关系图: ...
最新文章
- oracle acfs 快照,20C 新特性 ORACLE ACFS 基于文件的快照
- MyBatis 环境搭建
- debian安装flash插件
- 性能提升3倍、时延降低70%,阿里云企业级存储ESSD云盘再升级!
- 7,7显示选中的目标信息
- spark 连接mysql读取数据
- SVN版本管理:两种开发模式
- vision画流程图的软件_vision软件怎么画流程图
- 用linux给诺基亚手机刷机,凤凰刷机怎么给诺基亚手机刷机 凤凰给诺基亚手机刷机教程...
- 简易记事本android代码,Android实现简易记事本
- DAVE笔记--Micrium uc-Probo DashBoard调试
- 前端vue后台管理系统项目优化
- 一个懒鬼胡乱写的多解
- ST大宗商品订货系统源码.net语言
- 【云和恩墨业务介绍】之 SQL 审核服务
- 2021.8-机器学习地震信号去噪和到时识取环境配置
- Understanding unsupervised domain adaption
- 迅雷百度网盘不能下载资源 办法总比困难多
- PPT基础(二十二)裁剪图片
- 学习《运筹学基础》心得