資料庫系統原理第五章

2021-10-02 17:28:42 字數 2665 閱讀 9640

第一節 儲存過程

一、儲存過程的基本概念

(1)、儲存過程是一組sql語句集,可以由宣告式的sql語句和過程式sql語句組成。

(2)、儲存過程的優點:(簡單題

1、可增強sql語言的功能和靈活性

2、良好的封裝性(可被重複呼叫,且不影響其他的應用程式。)

3、高效能(儲存過程執行一次後,其執行規劃就駐留在高速緩衝儲存器中。)

4、可減少網路流量(由於儲存過程在伺服器端執行,網路中傳送的只是該呼叫語句。)

5、儲存過程可作為一種安全機制來確保資料庫的安全性和資料的完整性。

二、建立儲存過程

(1)、修改結束符:delimiter

l例子:

mysql> delimiter !!

mysql>

create procedure sp_update_***(儲存過程名字)(in cid int,in c*** char(1))

begin

update customers set cust_*** = c*** where cust_id = cid;

end !!

三、儲存過程體

在儲存過程體中可使用sql語句和過程式語句的組合,來封裝資料庫應用中複雜的業務邏輯和處理規則。

(1)、宣告區域性變數

declare cid int(10);

1、區域性變數注意事項:

區域性變數只能在儲存過程體的begin…end語句塊中宣告。

區域性變數必須在開頭宣告。

區域性變數的作用範圍僅限於begin…end語句塊中。

區域性變數不同於使用者變數,直接使用不需要在前面使用@符號

2、區域性變數的作用:用來儲存臨時結果

(2)、區域性變數賦值

set cid = 910;

(3)、select…into

select col_name(列名) into var_name(變數名)table_expr(from後面的語法)

(4)、流程控制語句

1、條件判斷語句

if…then…else語句

case語句

2、迴圈語句

while、repeat、loop迴圈語句

iterate語句用於退出當前迴圈,且重新開始乙個迴圈。

(5)、游標(選擇題、填空題

游標的定義:乙個被select語句檢索出來的結果集。

1、宣告游標

declare cursor_name(游標的名稱) cursor for select_statement(select語句,不能用select…into…語句)

2、開啟游標(每次開啟的游標的結果集可能會不同)

open cursor_name(游標的名稱)

3、讀取資料

fetch cursor_name(游標的名稱) into var_name(用於指定存放資料的變數名)

4、關閉游標

close cursor_name(游標的名稱)

沒有關閉游標的語句,到達end語句時自動關閉。

5、注意事項

游標只能用於儲存過程或儲存函式中,不能單獨在查詢操作中使用。

在儲存過程或儲存函式中可以定義多個游標,但在乙個begin…end語句塊中每乙個游標的名字必須唯一。

游標不是一條select語句,是被select語句檢索出來的結果集。

四、呼叫儲存過程

call sp_name()語句使用call sp_name效果相同

call sp_name(parameter)

sp_name:呼叫的儲存過程的名稱

parameter:呼叫儲存過程所要使用的引數。

五、刪除儲存過程

drop procedure sp_name;

第二節 儲存函式

儲存函式與儲存過程的區別:(簡答題

1、儲存函式不能擁有輸出函式,因為儲存函式自身就是輸出引數;而儲存過程可以擁有輸出函式

2、可以直接對儲存函式進行呼叫,且不需要使用call語句;而儲存過程的呼叫,需要使用call語句

3、儲存函式中必須包含一條return語句,而特殊sql語句不允許包含儲存過程中。

一、建立儲存函式

(1)、建立儲存函式

例子:

create function fn_search(儲存函式的名稱)(cid int)(儲存函式的引數,不能使用in、out、inout關鍵字)

returns(用於宣告儲存函式返回值的資料型別) char(2)(用於指定返回值的資料型別)

deterministic(routine_body,用於指定儲存函式的主體部分)

二、呼叫儲存函式

select sp_name(儲存函式的名稱)

三、刪除儲存函式

drop function sp_name(儲存函式的名稱)

資料庫系統概論第五章習題

1.什麼是資料庫完整性?與安全性的區別和區別。答 資料庫完整性是指資料的正確性和相容性。完整性是為了防止資料庫中存在不正確的資料,安全性是為了保護資料庫防止惡意破 壞和非法訪問 前者防範物件是不合語義資料,後者是非法使用者和非法操作。2.完整性約束條件 主體完整性 主屬性不取空值且唯一 違約處理 拒...

《資料庫系統概論》 第五章 資料庫完整性

dbms必須能夠實現如下功能 提供定義完整性約束條件的機制 sql中的ddl語句 立法 提供完整性檢查的方法 什麼時候檢查 怎麼檢查 執法 進行違約處理 create table中的primary key定義 為了避免對基本表進行全表掃瞄,dmbs一般都在主碼上自動建立乙個索引,如b 樹索引。在cr...

資料庫第五章

資料庫的完整性 資料的正確性 是指資料是符合現實世界語義,反映了當前實際狀況的 資料的相容性 是指資料庫同一物件在不同關係表中的資料是符合邏輯的 例如,學生的學號必須唯一 性別只能是男或女 本科學生年齡的取值範圍為14 50的整數 學生所選的課程必須是學校開設的課程,學生所在的院系必須是學校已成立的...