黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 淺談PL/SQL語法

淺談PL/SQL語法

更新時間:2021-03-12 17:31:57 來源:動力節點 瀏覽1169次

PL/SQL是Oracle數據庫對SQL語句的擴展。在普通SQL語句的使用上增加了編程語言的特點,通過邏輯判斷、循環等操作實現復雜的功能或者計算。MySQL 不支持 PL/SQL ,但支持Navicat Premium。那么接下來帶大家領略一下PL/SQL語法微妙之處。

1、聲明方法

declare

i number(2) := 10; -- 定義變量2位長度的數字類型i,賦值為10。 := 為賦值運算符

s varchar2(10) := '小明 '; -- 定義變量字符變量s

ena emp.ename%type; -- 定義類型與emp表ename字段同類型的ena變量

emprow emp%rowtype; -- 記錄型變量begin

dbms_output.put_line(i); -- 輸出變量i

dbms_output.put_line(s || '上午好'); -- '小明上午好',||是連接符end;

2、if判斷

declare

i number(3) := ∈ -- &in 是執行代碼后輸入的值begin

if i<18 then

dbms_output.put_line('少年');

elsif i<40 then

dbms_output.put_line('中年')

else

dbms_output.put_line('老年')

end if;end;-- elsif ... then 與 else 不是必需的

3、loop循環

-- 如同最常見的while語句

declare

i number(2) := 1;begin

while i<10 loop -- 開始循環

dbms_output.put_line(i);

i := i+1;

end loop; -- 結束循環end;

-- 等于while(true)語句中加條件declare

i number(2) := 1;begin

loop

exit when i>10;

dbms_output.put_line(i);

i := i+1;

end loop;end;

-- 如同for in循環declarebegin

for i in 1..10 loop -- 遍歷1-10

dbms_output.put_line(i);

end loop;end;?

4、游標

declare

cursor c1 is selset * from emp; -- 定義一個游標并將emp標所有數據存入其中

emprow emp%rowtype; -- 定義記錄型變量(與emp一行記錄相同類型)emprowbegin

open c1; -- 打開游標

loop

fetch c1 into emprow; -- 等于 for i in obj, i是emprow,c1是obj

exit when c1%notfound; -- c1取不到值的時候退出

dbms_output.put_line(emprow.ename); -- 輸出每行的ename屬性值

end loop;

close c1; -- 關閉游標end;

5、存儲過程

已近提前編譯好的一段PL/SQL,可以直接調用。類似于函數。

-- 語法create procedure 過程名(參數 數據類型)is  -- 也可以使用as,等效begin

用PL/SQL 做的事end;

-- 給指定員工漲100create or replace procedure payrise(eno emp.empno%type) -- or replace 如果存在payrise,會修改它isbegin

update emp set sal=sal+100 where empno = eno;

commit;end;-- p1(7788) 調用存儲過程,傳入 7788 參數

6、存儲函數

-- 語法create function 函數名(參數名 類型,參數名 類型,...) return 數據類型isbegin

return(結果變量);end 函數名;

-- 通過存儲函數實現指定員工的年薪create or replace function salaycalc(eno emp.empno%type) return number()is

s number(10)begin

select sal*12+nvl(comm,0) from emp where empno = eno;

return send;-- s := salaycalc(7788) 調用時必須有變量接收它的值

存儲過程與存儲函數的區別:

1)關鍵字不同

2)存儲函數比存儲過程多兩個return

3)存儲函數天生有返回值存儲過程天生沒有

7、觸發器

指定一個規則,在做增刪改操作的時候,只要滿足這個規則就自動觸發。觸發器分為:

語句級觸發器

不包含for each row ,反之是行級觸發器

行級觸發器

包含for each row 就是行級觸發器,使用它是為了使用 :old 或 :new 或 記錄

觸發語句與偽記錄的的關系

發器實現主鍵自增

create or replace trigger auid

beforeinserton ersonfor each rowdeclare

begin

select s_person.nextval into :new.pid from fual;end;

PL/SQL使用的數據庫操作語言還是基于SQL的,所以熟悉SQL是進行PL/SQL編程的基礎。而且,PL/SQL語法和SQL語法也有很多共通之處,在本站的PL/SQL教程中,有各個PL/SQL語法的應用實例,我們再結合SQL的語法學習起來也會事半功倍。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 成人黄色免费在线观看 | 又黄又猛又爽大片免费视频 | 综合久久99 | 日韩在线播放全免费 | 欧美九九视频 | 成人网18免费 | 亚洲免费播放 | 黄色网址在线播放 | 国产情精品嫩草影院88av | 国产欧美精品一区aⅴ影院 国产欧美成人一区二区三区 | 日本3级视频 | 看片网站在线观看 | 国产成人理在线观看视频 | 国产日本欧美亚洲精品视 | 黑丝美脚 | 国产一区二区三区播放 | 目韩一区二区三区系列片丶 | 无码日韩精品一区二区免费 | 久草首页在线观看 | 一级特黄特黄的大片免费 | 欧美viideos极品另类 | 国产午夜在线视频 | 欧美色图亚洲 | 成人在线免费视频观看 | 精品免费视在线观看 | 国产制服 | 97青草| 色黄网站aaaaaa级毛片 | 黄色男女网站 | 成人国产精品一级毛片视频 | 成人美女隐私免费 | 黄色大片在线播放 | 国产成人h片视频在线观看 国产成人lu在线视频 | 污黄视频在线观看 | 天天拍夜夜添久久精品免费 | 国产欧美日韩另类va在线 | 好紧好湿好黄的视频 | a级国产视频 | 国产高清国产专区国产精品 | 丝袜调教视频 | 五月天视频网 |