oracle資料庫 六

2021-08-20 09:58:29 字數 4519 閱讀 4494

pl/sql是一種塊結構的語言,這意味著pl/sql程式被劃分和編寫**的邏輯塊。每塊由三個子部分組成:

declare

/* 宣告部分: 在此宣告pl/sql用到的變數,型別及游標,以及區域性的儲存過程和函式 */

begin

/* 執行部分: 過程及sql 語句 , 即程式的主要部分 */

exception

/* 執行異常部分: 錯誤處理 */

end;

declare

message varchar2(20):= 'hello, world!';

begin

dbms_output.put_line(message);

end;

1.算數運算子

運算子描述+加

-減*乘

/除**乘方

2.關係運算子

運算子描述=等於

!= <> ~=

不等於》

大於<

小於

=
大於等於

<=

小於等於

between and

檢測兩值之間的內容

in匹配列表中的值

like

模糊查詢

is null

非空值判斷

3.邏輯運算子

運算子描述

and兩個表示式同時為真結果為真

or有乙個為真則為真

not取相反的邏輯值

if - then 語句

declare

a number(2) := 10;

begin

--判斷條件是否成立

if( a < 20 ) then

-- 成立則輸出

dbms_output.put_line('a

is less than 20 ' );

endif; dbms_output.put_line('value

of a is : ' || a);

end;

if-then-else語句

declare

a number(3) := 10;

begin

if( a < 20 ) then

dbms_output.put_line('a

is less than 20 ' );

else

dbms_output.put_line('a

isnot less than 20 ' );

endif; dbms_output.put_line('value

of a is : ' || a);

end;

if-then-elsif-then-else語句

declare

a number(3) := 20;

begin

if ( a = 10 ) then

dbms_output.put_line('value

of a is

10' );

elsif ( a = 20 ) then

dbms_output.put_line('value

of a is

20' );

elsif ( a = 30 ) then

dbms_output.put_line('value

of a is

30' );

else

dbms_output.put_line('none

of the values is matching');

endif; dbms_output.put_line('exact value of a is: '|| a );

end;

loop-exit-end語句

declare

x number := 10;

begin

loop

dbms_output.put_line(x);

x := x + 10;

if x >=20

then

exit; --滿足條件退出迴圈

endif;

endloop;

dbms_output.put_line('after

exit x is: ' || x);

end;

loop-exit-when-end語句

declare

x number := 10;

begin

loop

dbms_output.put_line(x);

x := x + 10;

exit

when x > 50;

endloop;

dbms_output.put_line('after

exit x is: ' || x);

end;

while-loop-end語句

declare

i number(3);

j number(3);

begin

i := 2;

loop

j:= 2;

loop

exit

when ((mod(i, j) = 0) or (j = i));

j := j +1;

endloop;

if (j = i ) then

dbms_output.put_line(i || ' is prime');

endif;

i := i + 1;

exit

when i = 50;

endloop;

end;

for-in-loop-end語句

declare

a number(2);

begin

for a in

10 .. 20 loop

dbms_output.put_line('value of a: ' || a);

end loop;

end;

case語句

declare

grade char(1) := 'b';

begin

case grade

when

'a' then dbms_output.put_line('excellent');

when

'b' then dbms_output.put_line('very good');

when

'c' then dbms_output.put_line('well done');

when

'd' then dbms_output.put_line('you passed');

when

'f' then dbms_output.put_line('better try again');

else dbms_output.put_line('no such grade');

endcase;

end;

goto語句

declare

a number(2) := 10;

begin

<> --標號

while a < 20

loop

dbms_output.put_line ('value

of a: ' || a);

a := a + 1;

if a = 15

then

a := a + 1;

goto loopstart;--跳轉

endif;

endloop;

end;

declare

c_id customers.id%type := 8;

c_name customers.name%type;

c_addr customers.address%type;

begin

select name, address into c_name, c_addr

from customers

where id = c_id;

dbms_output.put_line ('name: '|| c_name);

dbms_output.put_line ('address: ' || c_addr);

exception

when no_data_found then

dbms_output.put_line('no such customer!');

when

others

then

dbms_output.put_line('error!');

end;

oracle資料庫賦權 Oracle資料庫許可權

oracle資料庫許可權基本認識 一 oracle許可權 oracle系統提供三種許可權 object 物件級 system 系統級 role 角色級。許可權分類 1 系統許可權 系統規定使用者使用資料庫的許可權。系統許可權是對使用者而言 2 實體許可權 某種許可權使用者對其它使用者的表或檢視的訪問...

資料庫(六)索引

索引是一種特殊的資料庫結構,是提高資料庫效能的重要方式,可以用來快速查詢資料庫表中的特定記錄,mysql中所有的資料型別都可以被索引。mysql的索引包括普通索引 唯一性索引 全文索引 單列索引 多列索引和空間索引等。6.1索引概述 在mysql中,索引由資料表中一列或多列組合而成,建立索引的目的是...

資料庫實驗六

實驗六 資料庫程式設計 一 實驗目的 1.掌握觸發器的概念,了解觸發器的型別 2.掌握儲存過程的建立與執行方法 二 實驗內容 建立觸發器trigger delete,實現以下功能 當訂單表的資料被刪除時,顯示提示資訊 訂單表記錄被修改了 create trigger trigger delete o...