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