加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 站长百科 > 正文

oracle数据库进阶语句

发布时间:2020-12-24 13:10:18 所属栏目:站长百科 来源:网络整理
导读:--视图 --视图就是一个提供查询的窗口,所有数据来自于原表 --查询语句创建表 create table emp as select * from scot select * from emp;t.emp; --创建视图【必须有dba权限】 create view v_emp as select ename,job from emp; --查询视图 select * from v


--触发器:指定一个规则,在我们做crud操作的时候自动触发,无需调用
--语句触发器 ,不包含for each row
--行级触发器:包含for each row 得就是行级触发器
--加 for each row 是为了使用:old 或者:new对象

--两种触发器
--语句级触发器

--插入一条记录,输出一个新员工入职
create or replace trigger t1
after
insert
on person
declare

begin
dbms_output.put_line(‘新员工入职‘);
end;

--触发t1
insert into person values (1,‘小红‘);
commit;

select * from person;

--行级触发器
--不能给员工降薪
create or replace trigger t2
before
update
on emp
for each row
declare

begin
if :old.sal > :new.sal then
raise_application_error(-20001,‘不能给员工降薪‘);
end if;
end;

--测试触发器
update emp set sal = sal -1 where empno=7788;
--查询
select * from emp where empno=7788;


--触发器实现主键自增
--分析:在用户插入之前,拿到即将插入的数据
--给该数据的主键赋值
create or replace trigger suid
before
insert on person
for each row
declare
begin
select s_person.nextval into :new.pid from dual;

end;
select * from person;

--使用触发器实现主键自增
insert into person(pname) values (‘a‘);
commit;

--oracle 10g ojdbc14.jar---oracle 11g ojdbc

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读