马上毕业一年了,准备跳槽,去几家公司面试,深受打击,在这一年里也之后机械式的编码,对于oracle方面的操作没有什么提高,在与面试官进行交流时,发现现在的程序员特别多,对于java web基础开发都会,而且多数都是从培训机构训练过,重点偏向java web方向,而对于数据库方面知识很欠缺,甚至对于概念性,作用都说不出来,接下来,就简单讲述一下:
1、存储过程:oracle有系统存储过程和自定义存储过程,为了完成特定功能的sql语句集,经编译后存储在数据库中,用户通过特定的存储过程名来执行。
作用:
(1)、由于存储过程只在创造时进行编译,调用过程中无需编译直接执行,而一般的sql语句需要每执行一次就编译一次,所以存储过程的执行效率更高,
(2)、存储过程可以重复使用,可减少数据库开发人员的工作量
(3)、安全性高,设定某个用户使用特定存储过程的具有使用权
缺点:大量使用存储过程,增加服务器的压力
创建sql语句:
create or replace procedure 过程名 is begin ......end ;
执行语句:execute执行
2、存储函数:
作用:
缺点:
创建sql语句:
create or replace function 函数名
return
is
3、存储过程与存储函数的区别
(1)、存储函数必须有返回值(单一的),而存储过程没有
(2)、存储过程可以独立作为pl/sql语句执行,而存储函数不可以
(3)、函数可以嵌入到slq语句中执行,而存储过程则不可以。
4、触发器:特定事件出现的时候,自动执行代码块,类型存储过程,但用户不能直接调用他们,触发器是数据库自动执行
触发器触发时间有两种:after和before。
作用:对某一个表或数据库进行操作时,触发器内的代码开始执行
创建slq语句
create trigger 触发器名 before
类比:就好比,我删除一个表的数据时要记录日志或者修改其他表的数据
5、索引:
作用:适当的添加索引可以提高查询的速度,切记一定是适当的创建
创建sql语句
create index 索引名 on table(column 1,column2)
6.
事务:对数据库进行一次或多次的逻辑单元操作,要么全部执行,要么全部不执行
锁:数据库用来控制资源共享并发访问的机制
锁作用:保护正在被修改的数据,直到提交或回滚了事务之后,其他用户才可以更新数据
锁的优点:一致性- 一次只允许一个用户修改数据
完整性- 为所有用户提供正确的数据
7、游标:
Oracle系统在内存中开辟的一个工作区,在其中存放SELECT语句返回的查询结果
创建sql语句:
declare
cursor 游标名 is select
begin
end;