PL SQL程式設計基礎 1

2021-06-27 16:56:01 字數 2931 閱讀 9710

一、什麼是pl-sql

pl-sql是結合了oracle過程語言和結構化查詢語言(sql)的一種擴充套件語言。具體來說,pl-sql就是在普通的sql語句的基礎上增加了程式語言的特點,將資料操作和查詢語句組織在pl-sql**的過程性單元中,通過邏輯判斷、迴圈等操作實現複雜的功能或者計算的程式語言。

使用pl-sql有以下優點:

1、能夠把一組sql語句放到乙個模組中。使其更具模組化特點。

2、可以在pl-sql中增加邏輯結構判斷、迴圈等程式結構。

3、具有異常處理功能。使程式不會中斷。

4、減少網路互動,提高效能。

5、具有更好的移植性。

二、pl-sql程式塊

pl-sql程式塊包括五個部分,宣告部分,程式段開始,**主體部分,異常部分,程式結束。

declare                    --宣告部分

宣告變數、常量、游標、使用者自定義異常的宣告

....

begin --程式開始部分

sql語句和pl-sql語句構成的執行語句 --**主體部分

...exception

程式出現異常時,捕獲異常並處理異常。 --異常部分

...end; --程式結束部分

注意:

1、其中宣告部分和異常部分是可選的。

2、delcare,begin和exception後沒有分號,而end和其他所有的pl-sql語句後必須以分號結束!

三、變數的宣告與賦值

1、定義變數的語法:

declare variable_name date_type(size) [not null][:=value]

declare:定義變數所使用的關鍵字。

variable_name:變數的名稱。

date_type(size):變數的型別,size表示資料長度。

[not null]:變數不允許為空。

[:=value]:為變數賦初始值。

示例:  

declare 

v_name varchar2(20); --宣告乙個字串型別的變數

v_age number:=&age; --宣告乙個數字型別的變數 &age表示輸入資料,會臨時彈出乙個輸入框讓我們輸入資料。

pl-sql中的變數命名規則:

1、變數名首字母必須是英文本母,後面可以跟上字母、數字、下劃線,#,$。

2、變數名長度不超過30個字元。

3、變數名中不能有空格。

4、不能使用關鍵字命名。

注意:變數的宣告只在當前程式塊中有效。

2、變數的使用和賦值

a.使用:=進行賦值

v_name := 'wangwu';  --直接將'wangwu'賦值給變數v_name;

b.使用select..into..進行賦值

declare

proid number := &id;

pname varchar(20);

begin

select name into pname from es_product where id = proid; --將name列的值賦給pname

dbms_output.put_line(pname);

end;

注意:

1) 查詢結果只能返回單條記錄,多條或者0條都會返回異常。

2) into語句必須是在select 和 from 字句之間。

3)into所檢索出的資料型別必須和變數的型別一致。

4) into後賦值變數的個數必須和select查詢出的變數個數一致。

如果使用命令列執行pl-sql**塊,使用/表示執行**塊,然後通過 set serveroutput on;開啟輸出內容!

c.一次對多個變數進行賦值,並且變數的型別使用表中的型別。

declare

v_id number := &id; --定義輸入變數

v_name es_product.name%type; --定義變數,和es_product.name的型別一致

v_price es_product.price%type;

begin

select p.name,p.price

into v_name, v_price

from es_product p

where id=v_id; --對多個變數進行賦值,這裡只能返回單條記錄。

dbms_output.put_line('id:' || v_id || 'name:' || v_name || 'price:' || v_price); --輸出內容

end;

d.定義資料行,使用資料行可以儲存多個變數的值。以乙個整體儲存一條記錄的列的資訊。(類似物件的方式)

declare

v_id number := &id;

v_row es_product%rowtype; --定義變數,es_product.rowtype為esproduct的行型別

begin 

select p.name,p.price

into v_row.name, v_row.price

from es_product p

where id=v_id;

dbms_output.put_line('id:' || v_id || 'name:' || v_row.name || 'price:' || v_row.price);

end;

PL SQL程式設計基礎 PL SQL簡介

課程教師 李興華 課程學習者 陽光羅諾 日期 2018 07 28 知識點 1 了解pl sql的主要特點 2 掌握pl sql塊的基本結構 pl sql語法結構 語法 declare 宣告部分,例如。定義變數 常量 游標。begin 程式編寫 sql語句 exeception 處理異常 end 說...

PLSQL 程式設計基礎

sql structured query language 一種結構化查詢語言,是一種資料庫查詢和程式語言,用於訪問資料以及查詢 更新和管理關係資料庫系統。簡單理解為平時說的 增刪改查 等等 不嚴謹 plsql procedural language sql 一種過程化sql語言,是面向過程的。在s...

PL SQL 基礎程式設計

pl sql 程式設計 pl sql結構 declare 宣告變數 begin 執行部分 exception 異常處理部分 endpl sql 基本資料型別 數值型別 1 number p,s 例如 number 9,2 表示精度為9 點後兩位的數。ps 既可以表示整形和浮點型。字元型別 2 pl ...