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.以新行開始和結束,比如。元素的另乙個常見...