句子大全

句子大全 > 好句子

分享一下大厂关于Oracle的面试题 面跪面试老师

好句子 2016-09-18 02:50:16
相关推荐

今天和大家分享一些Oracle方面的面试题。

1. 什么是存储过程,使用存储过程的好处?

存储过程(Stored Procedure )是一组为了完成特定功能的 SQL 语句集,经编译后存储在数据库中。

用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。

优点:

(1)允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用该过程任意次。

(2)允许更快执行,如果某操作需要执行大量 SQL 语句或重复执行,存储过程比 SQL 语句执行的要快。

(3)减少网络流量,例如一个需要数百行的 SQL 代码的操作有一条执行语句完成,不需要在网络中发送数百行代码。

(4) 更好的安全机制,对于没有权限执行存储过程的用户,也可授权他们执行存储过程。

2. Oracle 存储过程怎么创建?

存储过程创建语法:

注意事项:

存储过程参数不带取值范围,in 表示传入,out 表示输出变量带取值范围,后面接分号在判断语句前最好先用 count(*)函数判断是否存在该条操作记录用 select ……into……给变量赋值在代码中抛异常用 raise+异常名

3. 如何使用 Oracle 的游标?

(1)、Oracle 中的游标分为显示游标和隐式游标

(2)、显示游标是用 cursor……is 命令定义的游标,它可以对查询语句(select)返回的多条记录进行处理;

(3)、隐式游标是在执行插入 (insert)、删除(delete)、修改(update) 和返回单条记录的查询(select)语句时由 PL/SQL 自动定义的。

(4)、显式游标的操作:打开游标、操作游标、关闭游标;PL/SQL 隐式地打开 SQL 游标,并在它内部处理 SQL语句,然后关闭它。

4. Oracle 中字符串用什么连接?

Oracle 中使用 || 这个符号连接字符串 如 ‘abc’ || ‘d’ 的结果是 abcd。

5. Oracle 中是如何进行分页查询的?

Oracle 中使用 rownum 来进行分页, 这个是效率最好的分页方法,hibernate 也是使用 rownum 来进行 Oralce分页的

select * from

( select rownum r,a from tabName where rownum <= 20 )

where r > 10

6. 存储过程和存储函数的特点和区别?

特点:

(1)、一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。

(2)、对于存储过程来说可以返回参数,而函数只能返回值或者表对象。

(3)、存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一个部分来调用,由于函数可以返回一个表对象,因此它可以在查询语句中位于 FROM 关键字的后面。

区别:

(1)、函数必须有返回值,而过程没有.

(2)、函数可以单独执行.而过程必须通过 execute 执行.

(3)、函数可以嵌入到 SQL 语句中执行.而过程不行,其实我们可以将比较复杂的查询写成函数.然后到存储过程中去调用这些函数.

7. 存储过程与 SQL 的对比?

优势:

1、提高性能

SQL 语句在创建过程时进行分析和编译。 存储过程是预编译的,在首次运行一个存储过程时,查询优化器对其进

行分析、优化,并给出最终被存在系统表中的存储计划,这样,在执行过程时便可节省此开销。

2、降低网络开销

存储过程调用时只需用提供存储过程名和必要的参数信息,从而可降低网络的流量。

3、便于进行代码移植

数据库专业人员可以随时对存储过程进行修改,但对应用程序源代码却毫无影响,从而极大的提高了程序的可移

植性。

4、更强的安全性

1)系统管理员可以对执行的某一个存储过程进行权限限制,避免非授权用户对数据的访问

2)在通过网络调用过程时,只有对执行过程的调用是可见的。 因此,恶意用户无法看到表和数据库对象名称、

嵌入自己的 Transact-SQL 语句或搜索关键数据。

3)使用过程参数有助于避免 SQL 注入攻击。 因为参数输入被视作文字值而非可执行代码,所以,攻击者将命令

插入过程内的 Transact-SQL 语句并损害安全性将更为困难。

4)可以对过程进行加密,这有助于对源代码进行模糊处理。

劣势:

1、存储过程需要专门的数据库开发人员进行维护,但实际情况是,往往由程序开发员人员兼职

2、设计逻辑变更,修改存储过程没有 SQL 灵活

8. 你觉得存储过程和 SQL 语句该使用哪个?

1、在一些高效率或者规范性要求比较高的项目,建议采用存储过程

2、对于一般项目建议采用参数化命令方式,是存储过程与 SQL 语句一种折中的方式

3、对于一些算法要求比较高,涉及多条数据逻辑,建议采用存储过程

9. 触发器的作用有哪些?

1)触发器可通过数据库中的相关表实现级联更改;通过级联引用完整性约束可以更有效地执行这些更改。

2)触发器可以强制比用 CHECK 约束定义的约束更为复杂的约束。与 CHECK 约束不同,触发器可以引用其它表中的列。例如,触发器可以使用另一个表中的 SELECT 比较插入或更新的数据,以及执行其它操作,如修改数据或显示用户定义错误信息。

3)触发器还可以强制执行业务规则

4)触发器也可以评估数据修改前后的表状态,并根据其差异采取对策。

好啦,今天的分享就到这里咯,再见!

阅读剩余内容
网友评论
相关内容
拓展阅读
最近更新