Oracle数据库“ 存储过程 触发器 索引 视图” 介绍

时间:2022-11-30 13:52:00
  一. Oracle数据库存储过程介绍:
    语法:   1.创建不带参数的存储过程   create or replace procedure p   as   cursor c is   select * from emp for update;   begin   for v_emp in c loop   if(v_emp.deptno = 10) then   update emp set sal = sal +10 where current of c;   elsif (v_emp.deptno = 20) then   update emp set sal = sal + 20 where current of c;   else   update emp set sal = sal + 50 where current of c;   end if ;   end loop ;   commit ;   end ;   // 执行存储过程(两种方式)   · exec p;   · begin   p;   end;   2.创建带参数的存储过程   create or replace procedure p   (v_a in number,v_b number,v_ret out number)   is   begin   if(v_a > v_b) then   v_ret:=v_a ;   else   v_ret :=v_b ;   end if ;   end ;   // 执行带参数的存储过程   declare   v_a number:=3 ;   v_b number:=4 ;   v_ret number ;   begin   p(v_a,v_b,v_ret) ;   dbms_output.put_line(v_ret) ;   end ;     二. Oracle数据库触发器介绍:
 
  利用触发器实现的业务如下:   现有两个表:emp和operate_info表,当用户对emp表进行增删改操作时,触发你所创建的触发器,该触发器执行向operate_info表中插入一条信息,记录用户对emp表的操作。   语法:   创建emp表:   create table emp   (   uname varchar2(20),   action varchar2(10),   atime date
 
        三. Oracle数据库索引介绍:
 
  目地:更快地检索数据。   特点:读取数据速度快,但添加数据速度慢.。   语法:   create index idx_stu_email on stu (email) ;   drop index idx_stu_email ;   select index_name from user_indexs ;     四. Oracle数据库视图介绍:
 
  特点:视图相当于子查询。   语法:   create view v$;   select view_name from user_views ;   desc v$_dept_avg_sal_info ;   create view v$_stu as select id,name from stu ;     )   // 创建触发器   create or replace trigger trig   after insert or delete or update on emp for each row   begin   if inserting then   insert into emp_log values (USER,'insert',sysdate) ;   elsif updating then   insert into emp_log values (USER,'upate',sysdate) ;   elsif deleting then   insert into emp_log values (USER,'dalete',sysdate) ;   end if;   end ;   // 删除触发器   drop trigger trig ;