oracle 视图可以使用游标吗,oracle_7 视图 索引 游标

视图:是一个封装了各种复杂查询的语句,就称为视图

创建视图:CREATE VIEW视图名字(字段) AS子查询,如

Create view v$_emp as Select empno,ename,sal From emp Where deptno = 20;

视图实际上可以看作一个子查询或者一张表

如果要创建一个同名视图,则必须先将之前的视图删掉,再进行创建;有时候如果先删除再创建会比较麻烦,所以最好的方式是如果视图存在则先自动删除,之后自动创建,如:

Create or replace view v$_emp as Select empno,ename,sal From emp Where deptno = 20;

数据的更新和表数据的更新语法相同,如:

Updata v$_emp set deptno =30 where empno = 7369;

此时,提示更新完成。默认情况下创建的视图,如果更新了,则会自动将此数据删除,之后会更新原版本的数据。

需要注意的是视图最好不要轻易的修改,所以可以将视图定义为只读的,即在创建语句的最后加上:with read only

或者创建保护视图,如:

Create or replace view v$_emp as Select empno,ename,sal From emp Where deptno = 20; With check option constraint v$_emp_bak; --查看视图: Select * from v$_emp;

oracle索引

创建索引:create index idx_stu_email on stu (email);

创建索引一般有两个目的:维护被索引列的唯一性和提供快速访问表中的数据的策略

使用索引的原则:

1) 查询结果是所有数据行的5%以下时,使用索引查询效果最好;

2) Where条件中经常用到表的多列时,使用复合索引效果会好于几个单列索引。因为当sql语句所查询的列,全部都出现在复合索引中,此时由于oracle止血药查询索引块即课获得所有数据,当然比使用多个单列索引要快得多;

3) 索引利于select,但是对经常insert,delte尤其update的表,会降低效率。

游标是一种PL/SQL 控制结构;可以对SQL 语句的处理进行显示控制,便于对表的行数据逐条进行处理。

游标并不是一个数据库对象,只是存留在内存中

操作步骤:

•  声明游标

•  打开游标

•  取出结果,此时的结果取出的是一行数据

•  关闭游标

例如:

--简单循环 Declare Cursor c is Select * from emp; v_emp c%roetype; begin open c; loop fetch c into v_emp; exit when (c%notfound); dbms_output.put_line(v_emp.ename); end loop; close c; end; --while循环: Declare Cursor c is Select * from emp; v_emp c%roetype; begin open c; loop fetch c into v_emp; while (c%notfound) loop; dbms_output.put_line(v_emp.ename); fetch c into v_emp; end loop; close c; end;   --for循环 Declare Cursor c is Select * from emp; v_emp c%roetype; begin for v_emp in c loop dbms_output.put_line(v_emp.ename); end loop; end;

使用游标时推荐使用for循环,简单不易出错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值