索引,视图,存储过程,游标的认识

1.索引目地:更快地检索数据,对于大量数据,能减少很多时间。特点:读取数据速度快,但添加数据速度慢.。语法:create index idx_stu_email on stu (email) ;drop index idx_stu_email ;select index_name from user_indexs ;2视图特点:它是从一个或几个基本表中导出来
摘要由CSDN通过智能技术生成

1.索引

目地:更快地检索数据,对于大量数据,能减少很多时间。

特点:读取数据速度快,但添加数据速度慢.。

语法:

create index idx_stu_email on stu (email) ;

drop index idx_stu_email ;

select index_name from user_indexs ;

2.视图

特点:它是从一个或几个基本表中导出来的表,是一种虚拟表。视图相当于子查询。

优点:视图可以限制我们对表中一些数据的访问,增加了数据的安全性;减少了重复写入T-SQL语句。

语法:

create view v$;

select view_name from user_views ;

desc v$_dept_avg_sal_info ;

create view v$_stu as select id,name fromstu ;

3.存储过程

存储过程(Stored Procedure)是数据库系统中封装的代码模块,是一组为了完成特定功能的SQL语句集,经编译后存放在数据库服务器中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。具有很好的可重用性。

1.创建不带参数的存储过程

create or replace procedure p

as

       cursorc is

              select* from emp for update;

begin

       forv_emp in c loop

              if(v_emp.deptno= 10) then

                     updateemp set sal = sal +10 where current of c;

              elsif(v_emp.deptno = 20) then

                     updateemp set sal = sal + 20 where current of c;

              else

                     updateemp set sal = sal + 50 where current of c;

              endif ;

       endloop ;

       commit;

end ;

 

// 执行存储过程(两种方式)

· exec p;

· begin

p;

end;

2.创建带参数的存储过程

create or replace procedure p

       (v_ain 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 ;

       endif ;

      

end ;

 

// 执行带参数的存储过程

declare

       v_anumber:=3 ;

       v_bnumber:=4 ;

       v_retnumber ;

begin

       p(v_a,v_b,v_ret);

       dbms_output.put_line(v_ret);

end ;

4.游标

游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标充当指针的作用。尽管游标能遍历结果中的所有行,但他一次只指向一行。

-定义游标
DECLARE A CURSOR FOR
SELECT num FROM test
--打开游标
OPEN A
--定义变量
DECLARE @SalePrice2 int
--检索游标
FETCH NEXT FROM A INTO @SalePrice2
--判断结束信息
while(@@fetch_status = 0)
begin
--更新
update test set price=price+10 where num=@SalePrice2
--检索游标
FETCH NEXT from A into @SalePrice2
END
--关闭游标
close A
--释放游标
deallocate A

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值