国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

PL/SQL程序控制結(jié)構(gòu)及在PL/SQL中更改數(shù)據(jù)和管理事務(wù)

2019-11-15 00:45:54
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
PL/SQL程序控制結(jié)構(gòu)及在PL/SQL中更改數(shù)據(jù)和管理事務(wù)1.條件控制

A. IF條件分支語(yǔ)法:

if (條件1) then

語(yǔ)句;

elsif (條件2) then

語(yǔ)句;

elsif (條件3) then

語(yǔ)句;

else

語(yǔ)句;

end if;

B . case條件分支:等值比較、條件比較、case表達(dá)式

a.等值比較語(yǔ)法:

CASE 條件判斷

WHEN 條件值的表達(dá)式 THEN 要執(zhí)行的條件操作 ;

…….

[ELSE ……..]

END CASE;

b. 條件比較語(yǔ)法:

CASE

WHEN 不同比較條件 THEN 要執(zhí)行的條件操作 ;

…….

[ELSE ……..]

END CASE;

2. 循環(huán)控制

A. 基本循環(huán):無(wú)論是否滿足條件,語(yǔ)句至少執(zhí)行一次

語(yǔ)法:LOOP

……..

EXIT [WHEN 條件語(yǔ)句];

END LOOP;

B. WHILE循環(huán):只有條件為真時(shí),才會(huì)執(zhí)行

語(yǔ)法: WHILE 條件語(yǔ)句 LOOP

…………………………………..

END LOOP;

C. FOR循環(huán)

語(yǔ)法: FOR 循環(huán)計(jì)數(shù)器 IN [REVERSE] 下限.. 上限 LOOP

……………………………………………………………………………………

END LOOP;

D. 嵌套循環(huán)和標(biāo)號(hào):定義標(biāo)號(hào):<< 標(biāo)號(hào)名稱(chēng) >>

3. 順序控制

A.GOTO語(yǔ)句:用于跳轉(zhuǎn)到指定<<標(biāo)號(hào)>>去執(zhí)行語(yǔ)句。

缺點(diǎn)是會(huì)增加程序的復(fù)雜性,降低可讀性,所以Oracle建議晝不要使用。

B. NULL語(yǔ)句:空語(yǔ)句,執(zhí)行沒(méi)有任何實(shí)際效果,通常占位置用

4. 異常處理

A.異常有兩種類(lèi)型:

a. 預(yù)定義異常 : 當(dāng) PL/SQL 程序違反 Oracle 規(guī)則或超越系統(tǒng)限制時(shí)隱式引發(fā)

b. 用戶定義異常 : 用戶可以在 PL/SQL 塊的聲明部分定義異常,自定義的異常通過(guò) RAISE 語(yǔ)句顯式引發(fā)

B. 定義異常語(yǔ)法:異常名稱(chēng) EXCEPTION;

PRAGMA EXCEPTION_INIT(異常名稱(chēng), 錯(cuò)誤號(hào));

C. 拋出異常語(yǔ)法

a. RAISE 異常名稱(chēng);

b. RAISE_application_ERROR(錯(cuò)誤號(hào) , 錯(cuò)誤描述 [, {TRUE|FALSE}]);

D. 處理異常語(yǔ)法

EXCEPTION

WHEN ……. THEN

…………….

WHEN THEN

WHEN OTHERS THEN

………….

5. DML操作的游標(biāo)屬性

A. 隱式游標(biāo)

a. 名稱(chēng):SQL

b. 屬性:SQL%屬性名

c. 常見(jiàn)屬性

SQL%FOUND:操作到數(shù)據(jù)

SQL%NOTFOUND:沒(méi)有操作到數(shù)據(jù)

SQL%ROWCOUNT:操作的記錄數(shù)

B. DML語(yǔ)句的RETURNING字句:返回SQL執(zhí)行以后的結(jié)果

6. 用ForAll語(yǔ)句批量執(zhí)行DML

A. ForAll語(yǔ)句語(yǔ)法

ForAll 索引 in 開(kāi)始..結(jié)束

sql語(yǔ)句; --注意,只有一句!

B . 在INSERT語(yǔ)句上使用批量綁定:首先要給集合元素賦值,然后再使用ForAll語(yǔ)句批量綁定

C. ForAll的游標(biāo)屬性

a. SQL%FOUND:操作到數(shù)據(jù)

b. SQL%NOTFOUND:沒(méi)有操作到數(shù)據(jù)

c. SQL%ROWCOUNT:操作的記錄數(shù)

d. SQL%BULK_ROWCOUNT:返回批量執(zhí)行時(shí)第i個(gè)元素所作用的行數(shù)

7. PL/SQL中的數(shù)據(jù)庫(kù)事務(wù)管理

A. 事務(wù)概念:事務(wù)就是一個(gè)完整的邏輯工作單元,由多個(gè)操作組成。所有操作要么全部成功,要么全部失敗

B. 事務(wù)特點(diǎn): ACID:原子性、一致性、隔離性、(永)持久性

C. 事務(wù)控制流程

開(kāi)始事務(wù)

自動(dòng)執(zhí)行第一條SQL開(kāi)始

執(zhí)行SQL

可能執(zhí)行多條SQL

提交或回滾

commit或rollback

D. 鎖的概念:鎖是數(shù)據(jù)庫(kù)用來(lái)控制共享資源并發(fā)訪問(wèn)的機(jī)制、鎖用于保護(hù)正在被修改的數(shù)據(jù)、直到提交或回滾了事務(wù)之后,其他用戶才可以更新數(shù)據(jù)

E. 鎖的類(lèi)型:行級(jí)鎖、表級(jí)鎖

a.行級(jí)鎖:對(duì)正在被修改的行進(jìn)行鎖定。其他用戶可以訪問(wèn)除被鎖定的行以外的行

在使用以下語(yǔ)句時(shí),Oracle會(huì)自動(dòng)應(yīng)用行級(jí)鎖:

a. INSERT

b. UPDATE

c. DELETE

d. SELECT … FOR UPDATE

使用COMMIT或ROLLBACK語(yǔ)句釋放鎖

b. 表級(jí)鎖:鎖定整個(gè)表,限制其他用戶對(duì)表的訪問(wèn)

語(yǔ)法: LOCK TABLE table_name IN mode MODE;

F. 死鎖:當(dāng)兩個(gè)事務(wù)相互等待對(duì)方釋放資源時(shí),就會(huì)形成死鎖、Oracle會(huì)自動(dòng)檢測(cè)死鎖,并通過(guò)結(jié)束其中的一個(gè)事務(wù)來(lái)解決死鎖

8. 事務(wù)隔離級(jí)別

A. 分類(lèi)

a. 未提交讀

讀其它用戶沒(méi)有提交的數(shù)據(jù),又稱(chēng)臟讀

b.提交讀:Oracle支持,這也是默認(rèn)支持的級(jí)別(可能會(huì)發(fā)生不可重復(fù)讀數(shù)據(jù)異常)

c.可重復(fù)讀: Oracle不支持(可能會(huì)發(fā)生幻讀數(shù)據(jù)異常)

d.串行讀: Oracle支持,不過(guò)效率低

9. 數(shù)據(jù)庫(kù)事務(wù)實(shí)現(xiàn)機(jī)制:通過(guò)日志文件實(shí)現(xiàn)


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 安义县| 宁波市| 定日县| 武乡县| 九龙坡区| 绍兴县| 额敏县| 江门市| 惠来县| 万州区| 仁寿县| 平舆县| 津市市| 松江区| 高平市| 钟祥市| 孟连| 宁陵县| 天门市| 泰兴市| 灌云县| 富顺县| 民和| 鞍山市| 明水县| 铁岭市| 石狮市| 铁岭县| 乌兰浩特市| 易门县| 天津市| 太湖县| 伊通| 遂溪县| 新绛县| 醴陵市| 澎湖县| 深水埗区| 临安市| 东乡族自治县| 中牟县|