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