Oracle高级语法二
-
Oracle异常处理
EXCEPTION WHEN exception_name THEN 语句体1 WHEN exception_name THEN 语句体2 ...... -
自定义函数(function) 只能在数据库内部使用
函数定义 语法:CREATE [OR REPLACE] FUNCTION 函数名 [参数一 [IN|OUT|IN OUT] 参数类型 参数二[IN|OUT|IN OUT] 参数类型 ] RETURN 返回值 --只能返回一个值 {IS | AS } <类型.变量的说明> BEGIN 函数体 EXCEPTION 其他语句 END; 删除函数: DROP FUNCTION 函数名;
3.存储过程 可以在数据库外部使用
CREATE [OR REPLACE]PROCEDURE 存储过程名
[参数一 [IN|OUT|IN OUT] 参数类型
参数二[IN|OUT|IN OUT] 参数类型 ]
RETURN 返回值 --只能返回一个值
{IS | AS } <类型.变量的说明>
BEGIN
过程体
EXCEPTION
其他语句
END;
删除存储过程:DROP PROCEDURE 过程名
-
存储过程调用的三种不同方式:
EXEC[UTE] 过程名(参数1,参数2); EXECUTE 过程名; 过程名; --只需要输入一个过程名字即可 -
包 package 与包体 package body
a. 包:Oracle中,可以将有联系的对象打成包,包中可以定义存储过程,函数,游标,自定义类型和变量等 a. 包体:承载包中功能的具体实现 -
Oracle中序列的使用:Sequence
a. 其维护一个整数值,每次取值会自动增量(+1),其保证每次取值是唯一。 a. 该整数的最大值:28个9 a. 缓存(cache):默认不使用,当使用时,会提前取值N个,效率高。如缓存后未使用,则取出的值,不可再用。 a. 序列Sequence的消费与使用 i. select 序列名.nextval from dual; --取值增量 i. select 序列名.currval from dual; --仅取当前值(如未取值,首次执行将失败)

-
oracle事务:是数据库的一个程序执行单元(指令集),要么完全执行,要不完全不执行,支持事务的数据库,应具有ACID特性,否则将不能保证数据处理的正确性。
1. 事物的ACID特性: a. 原子性(Atomicity) 业务不可分割,要么全执行,要么全不执行 a. 一致性(Consistency) 增加与减少相对应,这边增加多少,那边相应减少多少 a. 隔离性(lsolation) 其他访问看不到事务未提交的数据。(防止脏读,保证数据的正确性) a. 持久性(Durability) 事务提交后,数据将被持久化存储 -
Oracle事物的生命周期:
a. 连接开始时,默认事务开启,事务将在commit/rollback命令快结束完毕后结束 -
Oracle中的锁
a. DML语句具有数据独占性,其所涉及到的表或数据行被其锁定独占,其他用户一般只能进行读取操作,不能进行其他操作。 a. DML操作结束后,锁被自动释放,其他用户方可进行数据操作 -
事务与锁的关系:
a. 锁在事务结束前,将会一直存在。 a. 应尽可能减少锁的占用时间。 -
锁的类型分为:
a. 行级锁 a. 表级锁 a. 排他锁,独占锁,X锁(禁止会话读取,修改) a. 共享锁,S锁(share locks) 允许其他会话读取,但禁止修改 a. 一旦死锁发生,一般需要dba去手动解锁(杀死引发锁的SQL语句) -
oracle索引
a. 一个表只能有一个唯一索引 a. 语法: CREATE [UNIQUE] INDEX indexname ON table(字段1 [ASC|DESC][,字段2 [ASC|DESC]]); a. 删除索引 drop INDEX indexname; -
索引的优劣:
a. 好处:索引会提升数据的select查询速度 a. 劣处:索引会降低数据的insert,update,delete处理速度,因为当执行这些操作时,不仅要维护数据,还的维护索引表,增加了工作量 -
Oracle创建索引的两种方式
a. 自动创建:在定义 PRIMARY KEY或UNIQUE约束后系统自动在相应的列上创建唯一性索引 a. 手动创建:用户可以在其他列上创建非唯一性索引,以优化数据查询 -
唯一索引(聚集索引)与非聚集索引核心区别:
a. 聚集索引:数据的物理存储顺序。(最快) a. 非聚集索引:仅是另外维护了一个索引数据(表) -
索引后,会引发全表扫描:
a. 通配符在模糊搜索词首查询时,不能应用索引。 a. 在索引列上使用not,不能应用索引。 a. 索引上使用空值比较时,不能使用索引。
成功不是将来才有的,而是从决定去做的那一刻起,持续累积而成。

浙公网安备 33010602011771号