内容正文:
壹
零
陣
矩
誰
敢
爭
鋒
好
学
的
不
像
实
力
派
R&D incubation -
Base
存储过程与触发器
千锋教研院·索尔
The Best R&D Courses
The Best R&D Courses
把需要重复执行的内容放在存储过程中,实现代码的复用
create procedure my_proc1 is
begin
insert into student(sno,sname,sage) values(‘201215201’,’zhangsan’,20);
dbms_output.put_line(‘insert success’);
end my_proc1;
1 存储过程
The Best R&D Courses
begin
my_pro1;
end;
调用存储过程
The Best R&D Courses
create or REPLACE procedure my_proc1 is
begin
insert into student(sno,sname,sage) values(‘201215202’,’zhangsan’,20);
dbms_output.put_line(‘insert success’);
end my_proc1;
修改存储过程
The Best R&D Courses
drop procedure my_proc1;
删除存储过程
The Best R&D Courses
函数一般用于计算或表示某种功能,函数可以接收参数,有的函数也可以没有参数。但是函数必须
要有返回值。
函数
The Best R&D Courses
create or replace function get_avg_age(param_sdept varchar) return number is
avg_age_result number;
begin
select avg(sage) into avg_age_result from student where sdept = param_sdept;
return(round(avg_age_result,2));
exception
when no_data_found then
dbms_output.put_line(‘sdept not found’);
return(0);
end;
创建函数
The Best R&D Courses
declare
avg_age number;
begin
avg_age := get_avg_age(‘CS’);
dbms_output.put_line(avg_age);
end;
调用函数
The Best R&D Courses
drop function get_avg_age;
删除函数
The Best R&D Courses
触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是
与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,
比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数
据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典
中查到。SQL3的触发器是一个能由系统自动执行对数据库修改的语句。
什么是触发器
The Best R&D Courses
• 语句级触发器:针对一条DML语句而引起的触发器执行。无论数据操作影响多少行,触发器都只
会执行一次。
• 替换触发器:定义在视图上的触发器,当用户操作视图时执行替换触发器,实现对基表的操作。
• 系统事件触发器 :DDL:create、alter、drop等发生DDL语言时,会触发系统事件触发器。除
此之外还能在系统服务器的启动、关闭、出错时也会触发特定的系统事件触发器。
触发器的分类
The Best R&D Courses
• 语句级触发器:针对一条DML语句而引起的触发器执行。无论数据操作影响多少行,触发器都只
会执行一次。
create table student_log
(
operate_tag varchar2(10),
operate_time date
)
语句触发器
The Best R&D Courses
crea