更新時(shí)間:2021-03-12 17:45:01 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1498次
說到PL/SQL我們不禁想到SQL,PL/SQL和SQL確實(shí)有很重要的聯(lián)系。SQL語言是一門獨(dú)立的語言,所有數(shù)據(jù)庫都支持SQL語言操作數(shù)據(jù)。PL/SQL也是一種程序語言,叫做過程化SQL語言(Procedural Language/SQL)。PL/SQL是Oracle數(shù)據(jù)庫對SQL語句的擴(kuò)展。在普通SQL語句的使用上增加了編程語言的特點(diǎn),所以PL/SQL把數(shù)據(jù)操作和查詢語句組織在PL/SQL代碼的過程性單元中,通過邏輯判斷、循環(huán)等操作實(shí)現(xiàn)復(fù)雜的功能或者計(jì)算。
結(jié)構(gòu)化查詢語言(Structured Query Language,簡稱SQL)是用來訪問關(guān)系型數(shù)據(jù)庫一種通用語言,屬于第四代語言(4GL),其執(zhí)行特點(diǎn)是非過程化,即不用指明執(zhí)行的具體方法和途徑,而是簡單地調(diào)用相應(yīng)語句來直接取得結(jié)果即可。顯然,這種不關(guān)注任何實(shí)現(xiàn)細(xì)節(jié)的語言對于開發(fā)者來說有著極大的便利。然而,有些復(fù)雜的業(yè)務(wù)流程要求相應(yīng)的程序來描述,這種情況下4GL就有些無能為力了。PL/SQL的出現(xiàn)正是為了解決這一問題,它是一種過程化語言,屬于第三代語言,它與C、 C++、Java等語言一樣關(guān)注于處理細(xì)節(jié),可以用來實(shí)現(xiàn)比較復(fù)雜的業(yè)務(wù)邏輯。
PL/SQL(Procedural Language/SQL)是一種過程化語言,屬于第三代語言,它與C、C++、Java等語言一樣關(guān)注于處理細(xì)節(jié),可以用來實(shí)現(xiàn)比較復(fù)雜的業(yè)務(wù)邏輯。它允許SQL的數(shù)據(jù)操縱語言和查詢語句包含在塊結(jié)構(gòu)(block_structured)和代碼過程語言中,使PL/SQL成為一個(gè)功能強(qiáng)大的事務(wù)處理語言。在甲骨文數(shù)據(jù)庫管理方面,PL/SQL是對結(jié)構(gòu)化查詢語言(SQL)的過程語言擴(kuò)展。PL/SQL的目的是聯(lián)合數(shù)據(jù)庫語言和過程語言。PL/SQL的基本單位叫做塊,由三個(gè)部分組成:一個(gè)聲明部分,一個(gè)執(zhí)行部分和異常處理部分。
因?yàn)镻L/SQL允許混合SQL聲明和過程結(jié)構(gòu),因此可以在將聲明發(fā)送到甲骨文系統(tǒng)去執(zhí)行之前使用PL/SQL區(qū)段和副程序來組合SQL聲明,沒有PL/SQL,甲骨文需要就每次處理SQL聲明,在網(wǎng)絡(luò)環(huán)境中,這將影響交通流量,而且增加響應(yīng)時(shí)間。PL/SQL區(qū)段只被編譯一次并且以可運(yùn)行的形式儲(chǔ)存,以降低響應(yīng)時(shí)間。
當(dāng)然,PL/SQL語言也是有缺陷的,PL/SQL是Oracle數(shù)據(jù)庫對SQL語句的擴(kuò)展,因此不支持其他的數(shù)據(jù)庫類型。在本站的PL/SQL教程中,對這門神奇的語言有非常詳細(xì)的講解,我們?nèi)绻屑?xì)學(xué)習(xí)的話,自會(huì)發(fā)現(xiàn)PL/SQL的功能強(qiáng)大。

初級 202925

初級 203221

初級 202629

初級 203743