在程序中,我们主要的目的是使用PL/SQL基础语法和SQL语句获取和修改Orcale数据库中的数据。
组成PL/SQL程序的最基本的单元是PL/SQL块,块可以分为匿名块、命名块。
命名块又分为子程序(包括存储过程和函数)、包、触发器。
PL/SQL块的编译过程包括语法检查、绑定、伪代码产生。
Orcale数据库体系架构
1)实例
a.内存结构
它包括SGA和PGA,其中SGA包括共享池,JAVA池,数据库缓存区,日志缓冲区。
b.后台进程
它包括数据写进程、日志写进程、系统监控、进程监控等
2)数据库DB
c.物理结构
它包括数据文件、日志文件、控制文件、口令文件、初始化参数文件、归档日志文件等。
d.逻辑结构
它包括表空间、段、区、块以及数据对象。
Orcale数据词典与数据库对象
包括表、视图、同义词、序列。
序列用于实现数据库表的主键列的自动增长。
create sequence 序列名 increment by 增量数 start with 起始数字。
通过序列名.nextval增长。
第二章 PL/SQL编程基础
declare
begin
exception
end;
过程
create or replace procedure 过程名(变量,变量类型) is
begin
代码
end;
call 过程名(变量);--调用
函数
create or replace function 函数名(变量,变量类型) return 返回类型 is
begin
代码
end;
用块调用。
%type--返回某一列的数据类型。
%rowtype--动态行类型。
例如:v_sal emp.sal%type;
第三章 PL/SQL程序控制结构
1)条件控制 if语句 case...when
2)循环控制 loop while for
异常:分为系统异常和自定义异常。
抛出异常的三种方式:
① orcale自动抛出异常
②程序员使用raise抛出异常
③程序员使用raise_application_error抛出异常
第四章 在PL/SQL中更改数据和管理事务
数据库事务:
ACID是它的四个属性,分别为:
原子性、一致性、隔离性、持久性。
事务的隔离级别:
未提交读、提交度、可重复读、可串行读。
事务的管理机制是通过使用日志文件来实现的。
第五章 在PL/SQL使用游标获取数据
游标:
分为显式游标和隐式游标。
显式游标又分为静态游标和动态游标。
其中系统游标属于动态游标。
静态游标格式:
<1>cursor 名称 is sql
<2>open 名称
<3>loop
fetch 名称 into 变量;
exit when 名称%notfound;
end loop;
close 名称;
第六章 动态SQL
① 编译 → 早绑定(orcale) → 效率快
② 执行 → 晚绑定 → 慢 {在块中对对象操作(删、添)、execute immediate}
第七章 开发PL/SQL子程序和包
函数
变量有 in、 out、 in out。
建立包规范和包体。
第八章 使用PL/SQL编写触发器
触发器是一种PL/SQL命名块。
触发器的原理与事务监听相似。
for each row 行级触发器,影响每一行。
不加for each row 语句触发器,只影响单行。
用处:实例序列
new 和 old 只能出现在行级触发器里面。
drop procedure 过程名。
drop trigger 触发器名。
尽可能少在触发器里面写DML语句。
before 触发器是在某种操作发生之前执行的触发器。
after 触发器是在某种操作发生之后执行的触发器。
第九章 在JDBC中应用Orcale
callablestatement 对象为所有的JDBC程序员,提供了调用存储过程的标准形式和方法。