视图
关系视图
creatr or replace view view_name as select 表 or 其他视图
create or replace view view_emp_table_emp as
select * from emp;
只读视图
create view view_sales as
select sales.id,sales.goods,sales.selldate from sales with read only;
不能更改只读视图的数据
删除视图
drop view 视图名称
PL/SQL
PL/SQL是过程化SQL语言,是对SQL语句的拓展,增加了编程语言的特点,所以PL/SQL就是把数据库操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能,在定义复杂业务的函数、过程及建立触发器时使用。
PL/SQL中通常只能使用数据DML(数据操纵)语言和DCL(数据控制)语言,诸如:insert、update、select into、delete、commit、rollback、savepoint。不允许使用DDL(数据定义)语言create、drop、alter…
PL/SQL基本结构
declare
name string(43);
age int:=12;--初始值
begin
name:='风小田';
age:=age + 1;
dbms_output.put_line('名字:'||name);
end;
结果(在输出 显示):
异常处理
declare
n int:=21;
m int;
s int;
err_zir exception;
pragma exception_init(err_zir,-1476);
begin
m:=0;
s:= n / m;
dbms_output.put_line('结果是'||to_char(s));
exception when err_zir then
dbms_output.put_line('0不能做除数!');
end;
输出:
Oracle%TYPE和%ROWTYPE类型
emp表
declare
v_empName emp.name %type;
v_emp emp%rowtype;
begin
select e.name into v_empName from emp e where e.sid = 1;
dbms_output.put_line(v_empName);
select * into v_emp from emp e where e.sid = 1;
dbms_output.put_line('工号'||v_emp.sid||',名字'||v_emp.name);
end;
结果:
(这个知识点是后面不上的,参照这个链接)
逻辑判断
if-else语句/if-elsif语句
declare
age int:=15;
message string(64):='是成年人';
message2 string(64):='是未成年人';
begin
if age > 18 then
dbms_output.put_line(message);
else
dbms_output.put_line(message2);
end if;
end;
declare
score number:=34;
begin
if(s