《互联网oracle》ppt课件

上传人:tia****nde 文档编号:70529896 上传时间:2019-01-17 格式:PPT 页数:126 大小:804.31KB
返回 下载 相关 举报
《互联网oracle》ppt课件_第1页
第1页 / 共126页
《互联网oracle》ppt课件_第2页
第2页 / 共126页
《互联网oracle》ppt课件_第3页
第3页 / 共126页
《互联网oracle》ppt课件_第4页
第4页 / 共126页
《互联网oracle》ppt课件_第5页
第5页 / 共126页
点击查看更多>>
资源描述

《《互联网oracle》ppt课件》由会员分享,可在线阅读,更多相关《《互联网oracle》ppt课件(126页珍藏版)》请在金锄头文库上搜索。

1、ORACLE基础,一、基本查询语句 SELECT FROM WHERE GROUP BY HAVING ORDER BY,ORACLE基础,二、函数 1、处理null值 NVL(M,N) 2、字符串连接 | 3、查找子串位置 INSTR(原串,子串,从第n个字符开始) 4、取子串 SUBSTR(原串,起始位置,取字符位数),ORACLE基础,二、函数 5、“日期转换为字符串:yyyy-mm-dd hh:mi:ss“ TO_CHAR(表达式,YYYY-MM-DD HH:MI:SS) “ 6、日期转换为字符串:yyyy-mm-dd“ TO_CHAR(表达式,YYYY-MM-DD)“ 7、日期转换为

2、字符串:hh:mi:ss“ TO_CHAR(表达式,HH:MI:SS),ORACLE基础,二、函数 8、字符串转换为日期 TO_DATE(表达式,YYYY-MM-DD HH:MI:SS) TO_DATE(表达式,YYYY-MM-DD) 9、数值转字符串 TO_CHAR(表达式) 10、字符串转数值TO_NUMBER(表达式),ORACLE基础,二、函数 11、表达式判断取值 “case when 条件表达式1 then 结果式1 when 条件表达式2 then 结果式2. else 结果式n end“ decode(字段,第一个判断值,第一个结果,第二个判断值,第二个结果,否则的结果),二,

3、ORACLE基础,三、连接 1、内联(自然连接) : select * from a , b where a.id=b.id select * from a inner join b on a.id=b.id,ORACLE基础,三、连接 2、外接: 左接(左外连) select * from a , b where a.id =b.id (+) select * from a left join b on a.id=b.id 右接(右外连) select * from a , b where b.id(+) = a.id select * from b right join a on a.id

4、 = b.id,ORACLE基础,三、连接 3、全连: select * from a full join b on a.id=b.id 四、笛卡尔积 select * from a , b,ORACLE基础,三、连接 4、自连: select a.* from AAA a, AAA b on a.id=b.id,ORACLE基础,四、合并数据 UNION 合并去重复 UNION ALL 合并不去重复,ORACLE基础,五、触发器 1、概述: 触发器是特定事件出现的时候,自动执行的代码块。类似于存储过程,但是用户不能直接调用他们。 ORACLE触发器语法 触发器有两种after和before,

5、区别在于每次提交事务触发一次和每一行数据的更新都触发一次,ORACLE基础,五、触发器 2、语法: ORACLE产生数据库触发器的语法为: create or replace trigger 触发器名 触发时间 触发事件 on 表名 for each row pl/sql 语句,ORACLE基础,五、触发器 2、语法: create or replace trigger aaaa before insert on a for each row declare - local variables here begin insert into aa(a,b)values(999,999); end

6、 aaaa;,ORACLE基础,五、触发器 2、语法: 1)、触发器名:触发器对象的名称。 2)、触发时间:指明触发器何时执行,该值可取, before-表示在数据库动作之前触发器执行; after-表示在数据库动作之后出发器执行。,ORACLE基础,五、触发器 2、语法: 3、触发事件:指明哪些数据库动作会触发此触发器: insert:数据库插入会触发此触发器; update:数据库修改会触发此触发器; delete:数据库删除会触发此触发器。 4、表 名:数据库触发器所在的表。 5、 for each row:对表的每一行触发器执行一次。如果没有这一 选项,则只对整个表执行一次。,ORAC

7、LE基础,五、触发器 3、例子: 例子1:插入主键 CREATE OR REPLACE TRIGGER A_ BEFORE INSERT ON A FOR EACH ROW DECLARE BEGIN SELECT AA_SEQ.NEXTVAL INTO :NEW.A FROM DUAL; END A_;,ORACLE基础,例子2: CREATE OR REPLACE TRIGGER ADDB2B_GHDWUSER AFTER INSERT ON B2B_GHDWUSER FOR EACH ROW DECLARE V_MENUID B2B_GHJBMENU.MENUID%TYPE; _MENU

8、ID VARCHAR2(20); CURSOR INSERTUMENU IS SELECT A.MENUID FROM B2B_GHJBMENU A,XTGHDW B WHERE A.JNAM = B.JB AND B.DWBM= :NEW.GHDWBM; V_LXBM XTFBLX.LXBM%TYPE; CURSOR INSERTLXBM IS SELECT DISTINCT LXBM FROM XTFBLX;,ORACLE基础,BEGIN _MENUID:=1111111; OPEN INSERTUMENU; FETCH INSERTUMENU INTO V_MENUID,_MENUID;

9、 WHILE INSERTUMENU%FOUND LOOP INSERT INTO B2B_USERMENU (USERBM,MENUID) VALUES(:NEW.USERBM,V_MENUID); FETCH INSERTUMENU INTO V_MENUID; END LOOP; CLOSE INSERTUMENU; OPEN INSERTLXBM; FETCH INSERTLXBM INTO V_LXBM; WHILE INSERTLXBM%FOUND LOOP INSERT INTO B2B_USERXX (USERBM,LXBM) VALUES(:NEW.USERBM,V_LXBM

10、); FETCH INSERTLXBM INTO V_LXBM; END LOOP; CLOSE INSERTLXBM;,ORACLE基础,IF :OLD.SWBZ=2 AND :NEW.SWBZ = 0 THEN BEGIN SELECT TID,FUSED INTO L_ID,L_FUSED FROM RPC_CONTRAC WHERE HTBM = :NEW.HTBM AND HTLB 9; IF L_FUSED=1 THEN RAISE_APPLICATION_ERROR(-20005,不能删除!); END IF; DELETE RPC_CONTRACENTRY WHERE TID

11、= L_ID; DELETE RPC_CONTRAC WHERE TID = L_ID; EXCEPTION WHEN NO_DATA_FOUND THEN NULL; END; END IF; END ADDB2B_GHDWUSER ;,ORACLE基础,例子2: CREATE OR REPLACE TRIGGER ADDB2B_GHDWUSER AFTER INSERT ON B2B_GHDWUSER FOR EACH ROW DECLARE V_MENUID B2B_GHJBMENU.MENUID%TYPE; _MENUID VARCHAR2(20); CURSOR INSERTUMEN

12、U IS SELECT A.MENUID FROM B2B_GHJBMENU A,XTGHDW B WHERE A.JNAM = B.JB AND B.DWBM= :NEW.GHDWBM; V_LXBM XTFBLX.LXBM%TYPE; CURSOR INSERTLXBM IS SELECT DISTINCT LXBM FROM XTFBLX;,ORACLE基础,循环1 i :=1; loop insert into tb_zhaozhenlong(rpt_date ,dept_id,item,qty) values(to_date(2007-01-01,yyyy-MM-dd),D|i,I|

13、i,round(i*100/3,3); exit when i =10; i :=i+1; end loop;,ORACLE基础,循环2 i :=1; while i=5 loop i :=i+1; end loop;,ORACLE基础,循环3 -如果指定了reverse选项,则循环控制变量会自动减1,否则自动加1 for j in reverse 110 loop end loop;,ORACLE基础,循环3 for x in 110 loop end loop;,ORACLE基础,例子2: CREATE OR REPLACE TRIGGER ADDB2B_GHDWUSER AFTER IN

14、SERT ON B2B_GHDWUSER FOR EACH ROW DECLARE V_MENUID B2B_GHJBMENU.MENUID%TYPE; _MENUID VARCHAR2(20); CURSOR INSERTUMENU IS SELECT A.MENUID FROM B2B_GHJBMENU A,XTGHDW B WHERE A.JNAM = B.JB AND B.DWBM= :NEW.GHDWBM; V_LXBM XTFBLX.LXBM%TYPE; CURSOR INSERTLXBM IS SELECT DISTINCT LXBM FROM XTFBLX;,ORACLE基础,

15、六、存储过程 1、语法: 存储过程: 例子1: CREATE OR REPLACE PROCEDURE “P_BJHHTED“ -输入、输出参数 ( AS_USER VARCHAR2, AD_RQ1 DATE, AD_RQ2 DATE) AS,ORACLE基础,六、存储过程 1、语法: -定义变量 LS_GW VARCHAR2(8); LS_SPR VARCHAR2(10); LS_KS VARCHAR2(4); LD_SL1 NUMBER(14,4); LD_JE1 NUMBER(14,4); LD_SL2 NUMBER(14,4); LD_JE2 NUMBER(14,4); LD_SL3

16、NUMBER(14,4);,ORACLE基础,六、存储过程 1、语法: -定义变量 LD_JE3 NUMBER(14,4); LD_SL4 NUMBER(14,4); LD_JE4 NUMBER(14,4); LD_SL5 NUMBER(14,4); LD_JE5 NUMBER(14,4); LD_SL6 NUMBER(14,4); LD_JE6 NUMBER(14,4);,ORACLE基础,六、存储过程 1、语法: -定义游标 CURSOR C1 IS SELECT HTGW,KSJC,SPR FROM BJHHTED WHERE ZDR=AS_USER FOR UPDATE;,ORACLE基础,六、存储过程 1、语法: -开始执行存储过程 BEGIN -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号