当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
Oracle索引、视图、存储过程、触发器
发布时间:2010/7/27 10:59:27 来源:城市学习网 编辑:ziteng
  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 ;
  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 [NextPage]   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
  )
  // 创建触发器
  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 ;
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved