视图:
视图是表现数据的逻辑子集或数据的组合。视图是基于表或另一视图的逻辑表,一个视图并不包含真实的数据,他提供了另一个视角查看或改变表中的数据。
使用PL/SQL dev 创建视图(代码实现)
create [or replace] 视图名[(视图内列名1,列名2, 列名3…)] as select 列名 from 表 ;(可以包含子查询和表连接)
单个表的视图为简单视图,涉及多表的为复杂视图。
视图的使用:
可以直接作为表名一样使用
视图可以进行查询操作
某些简单视图可以进行DML操作
序列:
序列是数据库对象,独立于表存储,可以为多个表使用。序列最主要的用途就是创建一个主键的值,并能确保这个主键的唯一性
使用PL/SQL dev 创建序列
1.右键Sequence –》新建
2.
所有者:数据库用户 开始于:设置初始值
名称:表名_列名_seq 增量:每次增加多少 默认为1
最小值:最小值
最大值:最大值
一般只填写名称、开始于、最小值,其他默认则可
代码描述:
序列的调用:
直接调用 序列名.nextval
select dadsa.nextval into m from dual;--获取序列的下一个值给m
序列的修改:右键序列名,点击编辑则可修改
过程:
使用PL/SQL dev 创建过程(带参数的过程,代码实现)
create [or replace] procedure 过程名(
形参1 [参数模式] 数据类型
形参2 [参数模式] 数据类型
。。。
。。。
。。。
)is|as
参数1 数据类型;
参数2 数据类型;
。。。
begin
代码块
end;
in | 参数 |
---|---|
out | 返回值 |
in out | 既是参数又是返回值 |
调用过程:
- 右键过程名,选择测试
输入参数值,运行测试
- 在函数中调用,运行
begin
过程名(形参1, 形参2…)
end;
begin
p(参数1,参数二);
end;
游标
游标又称光标,是SQL的一个内存工作区,由系统或用户以变量的形式定义,主要用于暂时存放受SQL语句影响到的所有数据。换句话说,数据库会将收到SQL影响的数据暂时存放到一个内存区域的续表中,这个续表就是游标
游标的属性:
属性 | 简介 |
---|---|
%rowcount | 受SQL影响的行数,即游标中包含的行数 |
%found | 布尔值,游标中是否还有数据 |
%notfound | 布尔值,游标中是否已无数据 |
%isopen | 游标是否打开 |
·声明游标:
在declare下声明
Cursor cname[(参数1,数据类型1[, 参数二 数据类型2。。。])]
is select 语句
·使用游标:
一、
打开游标:
open cname[(参数1,数据类型1[, 参数二 数据类型2。。。])];
提取数据:
fetch cname into 变量1[, 变量2…];
关闭游标:
close cname;
例:
declear
--声明游标
Cursor cempis select ename from emp;
pname emp.ename%type;
begin
open cemp;
loop
fetch cemp into pname;
exit when cemp%notfound;
dbms_output>put_line(pname);
end loop
colse cemp;
end;
二、
利用for each
declear
--声明游标
Cursor cemp is select ename from emp;
pname emp.ename%type;
begin
for v_emp in cemp loop
dbms_output.put_line(v_emp.name);
loop
end;