<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Oracle PL/SQL基礎(chǔ)(PL/SQL程序結(jié)構(gòu), 變量與常量,SQL語(yǔ)句)

      1.PL/SQL概述

        通過(guò)SQL能夠?qū)?shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行管理。但SQL并不能做程序員希望做的所有事情。SQL有一個(gè)先天缺陷,即對(duì)輸出結(jié)果缺乏過(guò)程控制:它沒有數(shù)組處理、循環(huán)結(jié)構(gòu)和其他編程語(yǔ)言的特點(diǎn)。為了滿足這種要求,Oracle開發(fā)了PL/SQL作為對(duì)SQL的擴(kuò)展,它對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的處理有很好的控制,并且在允許運(yùn)行Oracle的任何操作系統(tǒng)平臺(tái)上均可運(yùn)行PL/SQL程序。
        PL/SQL首先出現(xiàn)在1985年的Oracle6中。它主要在Oracle用戶界面SQL*Forms上使用,用于在報(bào)表中引入復(fù)雜的邏輯;它取代了奇特的邏輯控制步進(jìn)方法。它還是一種類似于ADA和C的、相當(dāng)簡(jiǎn)單的結(jié)構(gòu)化編程語(yǔ)言。用戶可以用PL/SQL讀取數(shù)據(jù)、完成邏輯任務(wù)、填充數(shù)據(jù)庫(kù)、創(chuàng)建存儲(chǔ)對(duì)象、在數(shù)據(jù)庫(kù)內(nèi)移動(dòng)數(shù)據(jù)、甚至還可以創(chuàng)建和顯示W(wǎng)eb頁(yè)面。到現(xiàn)在,PL/SQL已完全發(fā)展成為一項(xiàng)成熟的技術(shù), Oracle在很多產(chǎn)品(也就是Oracle應(yīng)用程序)中都使用了PL/SQL, Oracle還將PL/SQL的Web擴(kuò)展廣泛地應(yīng)用在許多其他的應(yīng)用程序和產(chǎn)品中。PL/SQL語(yǔ)言將變量,控制結(jié)構(gòu)、過(guò)程和函數(shù)等結(jié)構(gòu)化程序設(shè)計(jì)的要素引入到SQL語(yǔ)言中,從而可以實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)邏輯

        PL/SQL的執(zhí)行過(guò)程PL/SQL程序的編譯和執(zhí)行是通過(guò)PL/SQL引擎來(lái)完成的。PL/SQL引擎可以安裝在數(shù)層庫(kù)中或者在應(yīng)用開發(fā)工具里,如Oracle Forms通常,Oracle數(shù)據(jù)庫(kù)服務(wù)器端都安裝有PL/SQL引擎。下面以數(shù)據(jù)庫(kù)服務(wù)器端的PL/SQL引擎為例說(shuō)明PL/SQL程序的執(zhí)行過(guò)程,如圖所示:客戶端應(yīng)用程序向Oracle數(shù)據(jù)庫(kù)發(fā)送一個(gè)PL/SQL塊的過(guò)程調(diào)用。服務(wù)器接收到應(yīng)用程序的內(nèi)容后,將其傳遞給PL/SQL引擎,PL/SQL引擎負(fù)責(zé)處理PL/SQL塊中的過(guò)程化語(yǔ)句,而將PL/SQL塊中的SQL語(yǔ)句傳遞給SQL語(yǔ)句執(zhí)行器。

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

      (1).PL/SQL程序通常包含3個(gè)部分;

      (2).嵌套的塊結(jié)構(gòu)

      PL/SQL塊中可包含子塊.子塊可位于PL/SQL塊中的任何部分.子塊也可是一條PL/SQL命令.

      [Declare ]
          --定義語(yǔ)句說(shuō)明部分    (可選的)
      Begin
      --主塊的語(yǔ)句執(zhí)行部分        (必須的)
        Begin
       --子塊的語(yǔ)句執(zhí)行部分
      [ Exception ]
      --子句的異常處理語(yǔ)句段  (可選的)
        End;
      [ Exception ]
      --主塊的異常處理語(yǔ)句段  (可選的)
      End ;

      (3).PL/SQL塊的類型

      無(wú)名塊:沒有命名的PL/SQL塊,嵌入在一個(gè)應(yīng)用內(nèi)的或者交互式發(fā)出的無(wú)名PL/SQL塊.無(wú)名塊可用于服務(wù)器和客戶端.無(wú)名塊在所有的PL/SQL環(huán)境中都使用。動(dòng)態(tài)生成,只能執(zhí)行一次的塊,不能由其他應(yīng)用程序調(diào)用
      有名塊(應(yīng)用的過(guò)程和函數(shù)):包括函數(shù)、存儲(chǔ)過(guò)程、包、觸發(fā)器 ,可以多次執(zhí)行的PL/SQL程序,編譯后放在服務(wù)器中,由應(yīng)用程序或系統(tǒng)在特定條件下調(diào)用執(zhí)行。

      3.詞法單元

      (1).oracle中 =: 和 := 區(qū)別

      =:應(yīng)該相當(dāng)于 a = :b 表明b是個(gè)綁定變量,需要執(zhí)行時(shí)進(jìn)行變量綁定
      := 相當(dāng)于一般編程語(yǔ)言中的 賦值 a := 1 即將 數(shù)字1賦值給變量 a

      (2).注釋

      注釋PL/SQL程序中可以采用兩種注釋形式:單行注釋和多行注釋。
      單行注釋:在某一行中以“--”開始,直到該行行尾結(jié)束,可以出現(xiàn)在一行的任何地方。
      多行注釋:以“/*”開始,以“*/”結(jié)束,中間可以跨越多行。

      (3).運(yùn)算符與表達(dá)式

      PL/SQL中需要進(jìn)行運(yùn)算來(lái)對(duì)數(shù)據(jù)進(jìn)行加工處理,要進(jìn)行運(yùn)算就需要有運(yùn)算符。
      PL/SQL中允許使用的運(yùn)算符有算術(shù)運(yùn)算符關(guān)系運(yùn)算符、邏輯運(yùn)算符和其他運(yùn)算符,。
      PL/SQL中的特殊運(yùn)算符:(與其他程序語(yǔ)言有異的)    

      不等于操作符: ◇或!=或^=

      乘冪運(yùn)算符:**

      邏輯運(yùn)算符: AND邏輯與  OR邏輯或  NOT邏輯非

      賦值運(yùn)算符:= IS NULL判斷值是否為空 LIKE比較字符串值 IN 驗(yàn)證操作數(shù)在設(shè)定的一系列值中 BETWEEN 驗(yàn)證值是否在范圍之內(nèi)

      其中,算術(shù)運(yùn)算符的優(yōu)先級(jí)為(由高到低:乘冪→正負(fù)→乘除→加減;關(guān)系運(yùn)算符的優(yōu)先級(jí)相等;邏輯運(yùn)算符的優(yōu)先級(jí)為(由高到低):not→and→or

      由各種運(yùn)算符和括號(hào)將運(yùn)算對(duì)象連接起來(lái)符合PL/SQL語(yǔ)法規(guī)則的式子稱為PL/SQL表達(dá)式。其中,運(yùn)算對(duì)象可以包括常量、變量等。表達(dá)式中運(yùn)算符的優(yōu)先級(jí)決定了表達(dá)式

      4. 變量與常量

      (1).標(biāo)識(shí)符的定義規(guī)則:

      變量必須以字母開頭,后跟字母、數(shù)字、下劃線、$、#等;
      變量名長(zhǎng)度不能超過(guò)30個(gè)字符;
      標(biāo)識(shí)符中不能包含加號(hào)、減號(hào)和空格;
      標(biāo)識(shí)符不能是 SQL的關(guān)鍵字;
      標(biāo)識(shí)符不區(qū)分大小寫
      注意:如果包含關(guān)鍵字或者空格等特殊字符,需要使用“”括起來(lái),稱為引證標(biāo)識(shí)符。

      (2).基本數(shù)據(jù)類型

      類型

      說(shuō)明

      varchar2(長(zhǎng)度)

      字符型 用來(lái)存放變長(zhǎng)的字符串,最大長(zhǎng)度4000字節(jié)。在PL/SQL中使用沒有默認(rèn)的長(zhǎng)度,因此必須指定

      Number(精度,小數(shù))

      數(shù)值型 用來(lái)存放整數(shù)和實(shí)數(shù),可定義精度和取值范圍

      date

      日期型,Oracle常用的日期型變量,date的最小單位是秒

      Char(長(zhǎng)度)

      Oracle SQL用來(lái)存放固定長(zhǎng)度的字符串,最大長(zhǎng)度4000字節(jié),默認(rèn)長(zhǎng)度為1,如果內(nèi)容不夠用空格替代。

      TIMESTAMP

      它包括了所有DATE數(shù)據(jù)類型的年月日時(shí)分秒的信息,而且包括了小數(shù)秒的信息。

       

      (3).聲明變量

      DECLARE 變量名 數(shù)據(jù)類型[(長(zhǎng)度)][:=初值][default 默認(rèn)值];
      (1)PL/SQL變量可以與數(shù)據(jù)庫(kù)列具有同樣的類型:

      DECLARE
      v_StudentName VARCHAR2(20):=‘zhanghe’;
      v_NumberCredits NUMBER(3):=123;
      out_num number default 5;

      (2)PL/SQL變量也可以是其他類型:

      DECLARE
      v_LoopCounter BINARY_INTEGER;
      v_CurrentlyRegistered BOOLEAN;

      (4).PL/SQL中的常量分為三種

      數(shù)值常量;包括整數(shù)、實(shí)數(shù)和指數(shù)。
      字符常量:?jiǎn)我?hào)括起來(lái)的字符序列。
      布爾常量:其常量有3個(gè)值,TRUE、FALSE和NULL。
      日期型常量:表示日期值。

      (5).常量的定義方式

      常量名 CONSTANT  類型:=常量值;
      如:

      PI CONSTANT number(5,6):=3.141926;

      5.PL/SQL塊中的SQL語(yǔ)句

      由于PL/SQL執(zhí)行采用早期綁定,即在編譯階段對(duì)變量進(jìn)行綁定,識(shí)別程序中標(biāo)識(shí)符的位在置,檢查用戶權(quán)限、數(shù)據(jù)庫(kù)對(duì)象等信息,因此在PL/SQL中只允許出現(xiàn)查詢語(yǔ)句(SELECT)、利DML語(yǔ)句(INSERT,UPDATE,DELETE)和事務(wù)控制語(yǔ)句(COMMIT,ROLLBACK,SAVEPOINT),因?yàn)樗鼈儾粫?huì)修改數(shù)據(jù)庫(kù)模式對(duì)象及其權(quán)限.

      例:查詢ORDERDETAILS表中產(chǎn)品編號(hào)為1的產(chǎn)品的銷售總價(jià)值和總數(shù)量.

      SET SERVEROUTPUT ON--用于展現(xiàn)查詢結(jié)果
      DECLARE
        total_price number(38,3);
         total_quantity number;
      BEGIN
        SELECT  sum(unitprice*quantity), sum(quantity)
        INTO  total_price, total_quantity
        FROM orderdetails
        WHERE productid=1;
      Dbms_output.put_line(‘產(chǎn)品1的銷售總價(jià)值為’ || total_price||’,總數(shù)量為’|| total_quantity);
      END;
      posted @ 2020-12-03 16:51  重雪  閱讀(490)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 亚洲AV日韩精品久久久久| 亚洲国产午夜精品理论片妓女| 天堂网亚洲综合在线| 国内熟妇与亚洲洲熟妇妇| 国产精品青青在线观看爽香蕉 | 亚洲一区二区三午夜福利| 高清性欧美暴力猛交| 国产精品亚洲二区亚瑟| 亚洲日本韩国欧美云霸高清| 丁香婷婷色综合激情五月| 久久久久成人片免费观看蜜芽| 久久国产免费直播| 亚洲一区二区三区自拍高清| 97人妻免费碰视频碰免| 99精品国产在热久久婷婷| 国产一区二区三区自拍视频| 妺妺窝人体色www看美女| 少妇又爽又刺激视频| 97久久精品人人澡人人爽| 日本久久久免费高清| 国产精品无码a∨麻豆| 麻豆国产成人AV在线播放| 精品无码午夜福利理论片| 国产欧美日韩精品丝袜高跟鞋| 欲色欲色天天天www| 国产成人一区二区三区视频免费| 和林格尔县| 朝鲜女子内射杂交bbw| 亚洲成在人线在线播放无码| 无码精品人妻一区二区三区湄公河| 亚洲精品久荜中文字幕| 成人国产亚洲精品一区二| 精品综合久久久久久97| 给我播放片在线观看| 久视频久免费视频久免费| 亚洲国产成人久久77| 青青草原国产精品啪啪视频| 国产伦视频一区二区三区| 狠狠色狠狠综合久久| 四虎亚洲国产成人久久精品| 亚洲在战av极品无码|