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...