Oracle基礎學習筆記(4)

2021-12-30 10:31:31 字數 3801 閱讀 7509

oracle基礎學習筆記(4)

1, instead of 觸發器

例句:create trigger update_emp_job_view

instead of update

on emp_job

begin

update  emp

set empno=:new.empno,

ename=:new.ename,

job=:new.job

where empno=:old.empno;

end;

在該示例中可以看出,在觸發器主體中有乙個對錶emp的update關鍵字。由於emp_job檢視是建立在emp表上的檢視。所以,如果更新這個檢視時,實際上就是更新該檢視的基本表。

www.2cto.com  

2, 系統時間觸發器

oracle系統還允許開發人員建立與特定系統事件相關的觸發器。這些特定事件如下:

(1)      資料庫啟動

(2)      資料庫關閉

(3)      伺服器錯誤等

示例:create trigger ad_startup

after startup

on database

begin

pl/sql**位置

end;

另外兩個:

before shutdown

before servererror

補充:刪除觸發器:drop trigger trigger_name;

禁用觸發器:alter trigger trigger_name diaable;

插入日期時的格式:

(1)      insert into values(『5-1月-12』);

(2)      insert into table_name(date』2012-1-5』);

複製表:create table emp_copy

as select * from emp;

但如果想複製表結構,不想複製資料:

create table emp_copy

as select * from emp

where 1=2;

3, 控制語句

(1)      條件

if ……then…….else語句

有三種形式,分別如下:

第一種形式:

if expression then

語句end if;

第二種形式:

if expression then

語句  www.2cto.com  

else

語句end if;

第三種形式:

if expression then

語句else if expression then

語句else

語句end if;

(2,case語句

case value

when expression then

語句;when expression then

語句;……..

else

語句;end case;

4, 迴圈

(1)      無限制迴圈

其基本語法格式為:;loop…….end loop.無限制迴圈是指如果沒有exit語句,迴圈將一直進行下去。

例句:set serverout on   //開啟螢幕輸出

declare loops number:=0;

begin

dbms_output.put_line(『迴圈開始』);

loop

if loops>4 then

exit;  www.2cto.com  

end if;

dbms_output.put_line(『第』||loops||『次迴圈』);

loops:=loops+1;

end loop;

dbms_output.put_line(『迴圈結束』);

end;

(2)      while迴圈

例子:declare loops number :=0;

begin

dbms_output.put_line(『迴圈開始』);

while loops<5 loop

dbms_output.put_line(『第』||loops||『次迴圈』);

loops:=loops+1;

end loop;

dbms_output.put_line(『迴圈結束』);

end;

/5, 情景查詢

(1)      decode()函式

decode(value_expression,search_value,result_value,default_value)

引數含義:

value_expression;表示將要與搜尋值比較的值或表示式

search_value;表示將要搜尋的值

result_value:表示search_value引數與value相等時value_expression引數的取值結果

default_value;表示search_value引數與value不相等時value_expression引數的取值結果

www.2cto.com  

例句:select name ,sal,decode(deptno,』10』,』會計部』,』20』,』研發部』,』30』,』銷售部』,』其他部門』) from emp

(2)      case表示式

語法格式如下:

case search_expression

when expression_1 then display_result_1

when expression_2 then display_result_2

……when expression_n then display_result_n

else default_display_result

end 

引數意義如下:

search_expression:表示用於檢索的表示式,一般情況下是表中的列名稱

expression_1,……,expression_n:表示用於比較的表示式

display_result_1,……..,display_result_n:表示用於比較的表示式與search_expression引數匹配時應該顯示的結果。

例句:select ename,sal,

case deptno

when 10 then 『會計部』

when 20 then 『研發部』

else 『其他部門』

endfrom emp;

與簡單的case表示式相比,搜尋表示式的每乙個條件都可以不同,因此更加具有靈活性,搜尋case表示式的語法格式如下:

case  www.2cto.com  

when expression_1 then display_result_1

when expression_2 then display_result_2

……when expression_n then display_result_n

else default_display_result

end 

例句:select ename.case

when hiredate

when hiredate>』1-7月-01』 and hiredate<=』1-7月-02』 then 『普通員工』

when hiredate>』1-7月-02』 then 『新員工』

end from emp;  

作者 pzhtpf

Oracle基礎學習4

下面將用乙個例項來講解 首先用oracel系統使用者 sysdba身份 連線到oracle 然後建立兩個使用者 lisi 和 zhangsan 然後為lisi授權,授建立表的許可權 lisi連線到資料庫,並建立乙個表mytable 為zhangsan授予連線到資料庫 建立表等許可權,並連線到orac...

Oracle學習筆記(4)

學習oracle感覺有點吃力,於是到網上找了一些學習線路,來有規律的學習,效率能高一些,分享給大家 concepts new features developer dba application backup recovery dev guide fundamentals concepts pl s...

HTML基礎學習筆記4

大多數html元素被定為塊級元素或內聯元素 塊 1.元素是塊級元素,它是可用於組合其他 html 元素的容器。2.元素沒有特定的含義。除此之外,由於它屬於塊級元素,瀏覽器會在其前後顯示折行。3.如果與 css 一同使用,元素可用於對大的內容塊設定樣式屬性。4.以新行開始和結束,比如。元素的另乙個常見...