av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

PL/SQL是啥?

從PL/SQL的字面上來看,它和SQL有一定的關(guān)系,那么就從SQL開始講一下它們倆兄弟之間的關(guān)系。

濱海網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,濱海網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為濱海上千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請找那個售后服務(wù)好的濱海做網(wǎng)站的公司定做!

什么是SQL?

結(jié)構(gòu)化查詢語言(Structured Query Language,簡稱SQL)是用來訪問關(guān)系型數(shù)據(jù)庫一種通用語言,屬于第四代語言(4GL),其執(zhí)行特點是非過程化,即不用指明執(zhí)行的具體方法和途徑,而是簡單地調(diào)用相應(yīng)語句來直接取得結(jié)果即可。顯然,這種不關(guān)注任何實現(xiàn)細節(jié)的語言對于開發(fā)者來說有著極大的便利。

那什么又是PL/SQL呢?

對于有些復(fù)雜的業(yè)務(wù)流程要求相應(yīng)的程序來描述,這種情況下SQL就有些無能為力了。PL/SQL的出現(xiàn)正是為了解決這一問題,PL/SQL是一種過程化語言,屬于第三代語言,它與C、 C++、Java等語言一樣關(guān)注于處理細節(jié),可以用來實現(xiàn)比較復(fù)雜的業(yè)務(wù)邏輯。

PL/SQL(Procedural Language/SQL)是數(shù)據(jù)庫廠商在標準的SQL語言上的擴展。PL/SQL不僅允許嵌入SQL語言,還可以定義變量和常量,允許使用條件語句和循環(huán)語句,允許使用例外處理各種錯誤,這使得它的功能變得更加強大。

我們需要知道的

我們需要了解以下幾個關(guān)鍵點:

  1. 存儲過程,函數(shù),觸發(fā)器是PL/SQL編寫的
  2. 存儲過程,函數(shù),觸發(fā)器是存儲在數(shù)據(jù)庫中的
  3. PL/SQL是非常強大的數(shù)據(jù)庫過程語言
  4. 存儲過程,函數(shù)可以在C、 C++、Java、C#等程序中調(diào)用

PL/SQL開發(fā)工具有哪些?

首先,數(shù)據(jù)庫廠商都會自帶命令行開發(fā)工具,比如Oracle的SQL*PLUS、MySQL的MySQL Client、DB2的DB2CMD等等。

其次,會有一些集成開發(fā)環(huán)境(IDE),比較老牌的有PL/SQL Developer(這個只適用Oracle數(shù)據(jù)庫)、DbVisualizer、Navicat、SQLyog、Toad等等,這些IDE都是獨立的第三方產(chǎn)品。其實,各數(shù)據(jù)庫廠商也有自己的IDE,不過感覺沒有特別好用的,基本上被第三方軟件壟斷,畢竟IDE不是數(shù)據(jù)庫公司的強項嘛。

我們上面說的命令行工具以及集成開發(fā)環(huán)境都可以用來編寫SQL或者PL/SQL程序,都屬于PL/SQL的開發(fā)工具。

PL/SQL的程序結(jié)構(gòu)

我們來大概瀏覽一下PL/SQL的程序結(jié)構(gòu),各數(shù)據(jù)庫廠商的實現(xiàn),會有所不同,下面以O(shè)racle為例進行說明。

PL/SQL程序都是以塊(block)為基本單位,整個PL/SQL塊分三部分:聲明部分(用declare開頭)、執(zhí)行部分(以 begin開頭)和異常處理部分(以exception開頭)。其中執(zhí)行部分是必須的,其他兩個部分可選。無論PL/SQL程序段的代碼量有多大,其基本結(jié)構(gòu)就是由這三部分組成。

程序結(jié)構(gòu)模板

 
 
 
 
  1. declare
  2.   /* 聲明區(qū)(可選):定義類型和變量、聲明變量、聲明函數(shù)、游標 */
  3.   begin
  4.   /* 執(zhí)行區(qū)(必須的):執(zhí)行pl/sql語句或者sql語句 */
  5.   exception
  6.   /* 異常處理區(qū)(可選):處理錯誤的 */
  7.   end;

一個demo

 
 
 
 
  1. /*聲明部分,以declare開頭*/
  2. declare v_id integer;
  3. v_name varchar(20);
  4. cursor c_emp is select * from employee where emp_id=3;
  5. /*執(zhí)行部分,以begin開頭*/
  6. begin  open c_emp; //打開游標
  7. loop
  8. //從游標取數(shù)據(jù)
  9. fetch c_emp into v_id,v_name;   
  10. exit when c_emp%notfound ;
  11. end loop ;
  12. //關(guān)閉游標
  13. close c_emp;    
  14. dbms_output.put_line(v_name);
  15. /*異常處理部分,以exception開始*/
  16. exception
  17. when no_data_found then
  18. dbms_output.put_line('沒有數(shù)據(jù)');
  19. end ;

【本文為專欄作者“朱國立”的原創(chuàng)稿件,轉(zhuǎn)載請通過作者微信公眾號“開發(fā)者圓桌”獲取聯(lián)系和授權(quán)】


當(dāng)前題目:PL/SQL是啥?
文章轉(zhuǎn)載:http://uogjgqi.cn/article/cooicis.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流