搜索
首页数据库OracleOracle面试题汇总

Oracle面试题汇总

Jul 31, 2020 pm 04:39 PM
oracle面试题

Oracle面试题汇总

1,delete 与Truncate区别?

1)Truncate 是DDL 语句,DELETE 是DML语句。

2) Truncate 的速度远快于DELETE;

原因是: 当执行DELETE操作时所有表数据先被COPY到回滚表空间,数据量不同花费时间长短不一。而TRUNCATE 是直接删除数据不进回滚表空间。

3) delete 数据可以运行Rollback 进行数据回滚。而Truncate 则是永久删除不能回滚。

4) Truncate 操作不会触发表上的delete触发器,而delete 会正常触发。

5) Truncate 语句不能带where 条件意味着只能全部数据删除,而DELETE可带where 条件进行删除数据。

6) Truncate 操作会重置表的高水位线(High Water Mark),而delete 不会。

【专题推荐】:2020年oracle面试题汇总(最新)

2,集合操作符

Union : 不包含重复值,默认按第一个查询的第一列升序排列。

Union All : 完全并集包含重复值。不排序。

Minus 不包含重复值,不排序。

3,数据库的三大范式是什么?

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

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

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

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

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

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

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

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

5 Mysql数据库与Oracle 数据库有什么区别?

1,应用方面,Mysql 是中小型应用的数据库。一般用于个人和中小型企业。Oracle 属于大型数据库,一般用于具有相当规模的企业应用。

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

3,group by 用法: Mysql 中group by 在SELECT 语句中可以随意使用,但在ORACLE 中如果查询语句中有组函数,那么其他列必须是组函数处理过的或者是group by子句中的列,否则会报错。

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

Oracle跟SQL Server 2005的区别? 

宏观上: 
1). 最大的区别在于平台,oracle可以运行在不同的平台上,sql server只能运行在windows平台上,由于windows平台的稳定性和安全性影响了sql server的稳定性和安全性 
2). oracle使用的脚本语言为PL-SQL,而sql server使用的脚本为T-SQL 
微观上: 从数据类型,数据库的结构等等回答

7 . 如何使用Oracle的游标?

1).  oracle中的游标分为显示游标和隐式游标 
2).  显示游标是用cursor...is命令定义的游标,它可以对查询语句(select)返回的多条记录进行处理;隐式游标是在执行插入 (insert)、删除(delete)、修改(update)和返回单条记录的查询(select)语句时由PL/SQL自动定义的。 
3). 显式游标的操作:打开游标、操作游标、关闭游标;PL/SQL隐式地打开SQL游标,并在它内部处理SQL语句,然后关闭它

Oracle中function和procedure的区别?

1). 可以理解函数是存储过程的一种 
2). 函数可以没有参数,但是一定需要一个返回值,存储过程可以没有参数,不需要返回值 
3). 函数return返回值没有返回参数模式,存储过程通过out参数返回值, 如果需要返回多个参数则建议使用存储过程 
4). 在sql数据操纵语句中只能调用函数而不能调用存储过程

9 Oracle的导入导出有几种方式,有何区别? 

1). 使用oracle工具 exp/imp 
2). 使用plsql相关工具 
方法1. 导入/导出的是二进制的数据, 2.plsql导入/导出的是sql语句的文本文件 

3) sqlloader

4) dblink

10 . 解释冷备份和热备份的不同点以及各自的优点? 

冷备份发生在数据库已经正常关闭的情况下,将关键性文件拷贝到另外位置的一种说法 
热备份是在数据库运行的情况下,采用归档方式备份数据的方法 

冷备的优缺点: 
1).是非常快速的备份方法(只需拷贝文件)  
2).容易归档(简单拷贝即可)  
3).容易恢复到某个时间点上(只需将文件再拷贝回去)  
4).能与归档方法相结合,作数据库“最新状态”的恢复。  
5).低度维护,高度安全。  
冷备份不足:  
1).单独使用时,只能提供到“某一时间点上”的恢复。  
2).在实施备份的全过程中,数据库必须要作备份而不能作其它工作。也就是说,在冷备份过程中,数据库必须是关闭状态。  
3).若磁盘空间有限,只能拷贝到磁带等其它外部存储设备上,速度会很慢。  
4).不能按表或按用户恢复。  

热备的优缺点 
1).可在表空间或数据文件级备份,备份时间短。  
2).备份时数据库仍可使用。  
3).可达到秒级恢复(恢复到某一时间点上)。  
4).可对几乎所有数据库实体作恢复。  
5).恢复是快速的,在大多数情况下在数据库仍工作时恢复。  
热备份的不足是:  
  1).不能出错,否则后果严重。  
  2).若热备份不成功,所得结果不可用于时间点的恢复。  
  3).因难于维护,所以要特别仔细小心,不允许“以失败而告终”。 

11 解释data block , extent 和 segment的区别? 

data block 数据块,是oracle最小的逻辑单位,通常oracle从磁盘读写的就是块 
extent 区,是由若干个相邻的block组成 
segment段,是有一组区组成 
tablespace表空间,数据库中数据逻辑存储的地方,一个tablespace可以包含多个数据文件 

12. 解释什么是死锁,如何解决Oracle中的死锁? 

简言之就是存在加了锁而没有解锁,可能是使用锁没有提交或者回滚事务,如果是表级锁则不能操作表,客户端处于等在状态,如果是行级锁则不能操作锁定行 

解决办法: 
1). 查找出被锁的表 
select b.owner,b.object_name,a.session_id,a.locked_mode 
from v$locked_object a,dba_objects b 
where b.object_id = a.object_id; 
     
select b.username,b.sid,b.serial#,logon_time 
from v$locked_object a,v$session b 
where a.session_id = b.sid order by b.logon_time; 

2). 杀进程中的会话 

alter system kill session "sid,serial#"; 

13  简述oracle中 dml、ddl、dcl的使用 

Dml 数据操纵语言,如select、update、delete,insert 
Ddl 数据定义语言,如create table 、drop table 等等 
Dcl 数据控制语言, 如 commit、 rollback、grant、 invoke等 

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

创建标准索引: 
CREATE  INDEX 索引名 ON 表名 (列名)  TABLESPACE 表空间名; 
创建唯一索引: 
CREATE unique INDEX 索引名 ON 表名 (列名)  TABLESPACE 表空间名; 
创建组合索引: 
CREATE INDEX 索引名 ON 表名 (列名1,列名2)  TABLESPACE 表空间名; 
创建反向键索引: 
CREATE INDEX 索引名 ON 表名 (列名) reverse TABLESPACE 表空间名; 
索引使用原则: 
索引字段建议建立NOT NULL约束 
经常与其他表进行连接的表,在连接字段上应该建立索引; 
经常出现在Where子句中的字段且过滤性很强的,特别是大表的字段,应该建立索引; 
可选择性高的关键字 ,应该建立索引; 
可选择性低的关键字,但数据的值分布差异很大时,选择性数据比较少时仍然可以利用索引提高效率 
复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替: 
A、正确选择复合索引中的第一个字段,一般是选择性较好的且在where子句中常用的字段上; 
B、复合索引的几个字段经常同时以AND方式出现在Where子句中可以建立复合索引;否则单字段索引; 
C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引; 
D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段; 
E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引; 
频繁DML的表,不要建立太多的索引; 
不要将那些频繁修改的列作为索引列; 
索引的优缺点: 
有点: 
1. 创建唯一性索引,保证数据库表中每一行数据的唯一性 
2. 大大加快数据的检索速度,这也是创建索引的最主要的原因 
3. 加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 
4. 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。 
缺点: 
1. 索引创建在表上,不能创建在视图上 
2. 创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加 
3. 索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大 
4. 当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度 

15 oracle的锁又几种,定义分别是什么;

1.  行共享锁 (ROW SHARE) 
2.  行排他锁(ROW EXCLUSIVE) 
3 . 共享锁(SHARE) 
4.  共享行排他锁(SHARE ROW EXCLUSIVE) 
5.  排他锁(EXCLUSIVE) 

使用方法: 
SELECT * FROM order_master WHERE vencode="V002" 
FOR UPDATE WAIT 5; 
LOCK TABLE order_master IN SHARE MODE; 
LOCK TABLE itemfile IN EXCLUSIVE MODE NOWAIT; 
ORACLE锁具体分为以下几类: 
1.按用户与系统划分,可以分为自动锁与显示锁 
自动锁:当进行一项数据库操作时,缺省情况下,系统自动为此数据库操作获得所有有必要的锁。 
显示锁:某些情况下,需要用户显示的锁定数据库操作要用到的数据,才能使数据库操作执行得更好,显示锁是用户为数据库对象设定的。 
2 . 按锁级别划分,可分为共享锁与排它锁 
共享锁:共享锁使一个事务对特定数据库资源进行共享访问——另一事务也可对此资源进行访问或获得相同共享锁。共享锁为事务提供高并发性,但如拙劣的事务设计+共享锁容易造成死锁或数据更新丢失。 
排它锁:事务设置排它锁后,该事务单独获得此资源,另一事务不能在此事务提交之前获得相同对象的共享锁或排它锁。 
3.按操作划分,可分为DML锁、DDL锁 
DML锁又可以分为,行锁、表锁、死锁 
行锁:当事务执行数据库插入、更新、删除操作时,该事务自动获得操作表中操作行的排它锁。 
表级锁:当事务获得行锁后,此事务也将自动获得该行的表锁(共享锁),以防止其它事务进行DDL语句影响记录行的更新。事务也可以在进行过程中获得共享锁或排它锁,只有当事务显示使用LOCK TABLE语句显示的定义一个排它锁时,事务才会获得表上的排它锁,也可使用LOCK TABLE显示的定义一个表级的共享锁(LOCK TABLE具体用法请参考相关文档)。 
死锁:当两个事务需要一组有冲突的锁,而不能将事务继续下去的话,就出现死锁。 
如事务1在表A行记录#3中有一排它锁,并等待事务2在表A中记录#4中排它锁的释放,而事务2在表A记录行#4中有一排它锁,并等待事务; 1在表A中记录#3中排它锁的释放,事务1与事务2彼此等待,因此就造成了死锁。死锁一般是因拙劣的事务设计而产生。死锁只能使用SQL下:alter system kill session "sid,serial#";或者使用相关操作系统kill进程的命令,如UNIX下kill -9 sid,或者使用其它工具杀掉死锁进程。 
DDL锁又可以分为:排它DDL锁、共享DDL锁、分析锁 
排它DDL锁:创建、修改、删除一个数据库对象的DDL语句获得操作对象的 排它锁。如使用alter table语句时,为了维护数据的完成性、一致性、合法性,该事务获得一排它DDL锁。 
共享DDL锁:需在数据库对象之间建立相互依赖关系的DDL语句通常需共享获得DDL锁。 
如创建一个包,该包中的过程与函数引用了不同的数据库表,当编译此包时,该事务就获得了引用表的共享DDL锁。 
分析锁:ORACLE使用共享池存储分析与优化过的SQL语句及PL/SQL程序,使运行相同语句的应用速度更快。一个在共享池中缓存的对象获得它所引用数据库对象的分析锁。分析锁是一种独特的DDL锁类型,ORACLE使用它追踪共享池对象及它所引用数据库对象之间的依赖关系。当一个事务修改或删除了共享池持有分析锁的数据库对象时,ORACLE使共享池中的对象作废,下次在引用这条SQL/PLSQL语句时,ORACLE重新分析编译此语句。 
4.内部闩锁 
内部闩锁:这是ORACLE中的一种特殊锁,用于顺序访问内部系统结构。当事务需向缓冲区写入信息时,为了使用此块内存区域,ORACLE首先必须取得这块内存区域的闩锁,才能向此块内存写入信息。

相关学习推荐:oracle数据库学习教程

以上是Oracle面试题汇总的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:CSDN。如有侵权,请联系admin@php.cn删除
甲骨文在商业世界中的作用甲骨文在商业世界中的作用Apr 23, 2025 am 12:01 AM

Oracle不仅是数据库公司,还是云计算和ERP系统的领导者。1.Oracle提供从数据库到云服务和ERP系统的全面解决方案。2.OracleCloud挑战AWS和Azure,提供IaaS、PaaS和SaaS服务。3.Oracle的ERP系统如E-BusinessSuite和FusionApplications帮助企业优化运营。

Oracle Software正在行动:现实世界中的示例Oracle Software正在行动:现实世界中的示例Apr 22, 2025 am 12:12 AM

Oracle软件在现实世界中的应用包括电商平台和制造业。1)在电商平台,OracleDatabase用于存储和查询用户信息。2)在制造业,OracleE-BusinessSuite用于优化库存和生产计划。

Oracle软件:应用程序和行业Oracle软件:应用程序和行业Apr 21, 2025 am 12:01 AM

Oracle软件在多领域大放异彩的原因是其强大的应用性和定制化解决方案。1)Oracle提供从数据库管理到ERP、CRM、SCM的全面解决方案,2)其解决方案可根据金融、医疗、制造等行业特性进行定制,3)成功案例包括花旗银行、梅奥诊所和丰田汽车,4)优势在于全面性、定制化和可扩展性,但挑战包括复杂性、成本和集成问题。

在MySQL和Oracle之间进行选择:决策指南在MySQL和Oracle之间进行选择:决策指南Apr 20, 2025 am 12:02 AM

选择MySQL还是Oracle取决于项目需求:1.MySQL适合中小型应用和互联网项目,因其开源、免费和易用性;2.Oracle适用于大型企业核心业务系统,因其强大、稳定和高级功能,但成本较高。

甲骨文的产品:深度潜水甲骨文的产品:深度潜水Apr 19, 2025 am 12:14 AM

Oracle的产品生态包括数据库、中间件和云服务。1.OracleDatabase是其核心产品,支持高效的数据存储和管理。2.中间件如OracleWebLogicServer连接不同系统。3.OracleCloud提供全套云计算解决方案。

MySQL和Oracle:功能和功能的关键差异MySQL和Oracle:功能和功能的关键差异Apr 18, 2025 am 12:15 AM

MySQL和Oracle在性能、扩展性和安全性方面各有优势。1)性能:MySQL适合读操作和高并发,Oracle擅长复杂查询和大数据处理。2)扩展性:MySQL通过主从复制和分片扩展,Oracle使用RAC提供高可用性和负载均衡。3)安全性:MySQL提供细粒度权限控制,Oracle则有更全面的安全功能和自动化工具。

甲骨文:数据库管理甲骨文:数据库管理Apr 17, 2025 am 12:14 AM

Oracle被称为数据库管理的“Powerhouse”是因为其高性能、可靠性和安全性。1.Oracle是一个关系数据库管理系统,支持多种操作系统。2.它提供强大的数据管理平台,具有可扩展性、安全性和高可用性。3.Oracle的工作原理包括数据存储、查询处理和事务管理,支持性能优化技术如索引、分区和缓存。4.使用示例包括创建表、插入数据和编写存储过程。5.性能优化策略包括索引优化、分区表、缓存管理和查询优化。

Oracle提供什么?产品和服务解释Oracle提供什么?产品和服务解释Apr 16, 2025 am 12:03 AM

OracleOfferSacomprehensUIteOfproductSandServicesservicesCludingDatabasemangemention,CloudComputing,Enterprisesoftware,AndhardWaresolutions.1)oracledatabaseuppasesuppassuppassuppersupportsvariousdatamodelswithefffiteFticsFeatures.2)

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用