面試篇 儲存過程和觸發器

2021-09-06 10:05:14 字數 1420 閱讀 9236

1.儲存過程和函式

儲存過程重在處理資料,函式可以返回值。

(1)儲存過程是procedure使用者定義的一系列sql語句的集合,涉及特定表或其他物件的任務,使用者可以呼叫儲存過程。

(2)函式通常是資料庫已定義的方法,它接收引數並返回某種型別的值並且不涉及特定使用者表。

(3)可以理解函式是儲存過程的一種,都是預編譯的(塊語句每次執行都會編譯 儲存過程塊 一次編譯多次執行 效率更高)

plsql塊語句:

begin

end儲存過程塊

create procedure prg_add()

asbegin

end;

(4)函式可以沒有引數,但是一定要有乙個返回值,儲存過程可以沒有引數,不需要返回值。

(5)函式return返回值沒有返回引數模式,儲存過程通過out引數返回值,如果需要返回多個引數則建議使用儲存過程(函式oracle 在函式可以使用in和out mysql不能使用out)

(6)在sql資料操縱(dml)語句中只能呼叫函式而不能呼叫儲存過程

2.儲存過程的概念,優點(或特點),寫乙個簡單的儲存過程

儲存過程:是一組為了完成特定功能的sql語句集,利用sql server所提供的t-sql語言所編寫的程式,經編譯後儲存在資料庫中。

優點:(1)執行速度快,儲存過程只在建立時進行編譯,以後每次執行不需要再重新編譯,一般sql語句每執行一次就編譯一次

(2)儲存過程可重複使用

(3)安全性高(可設定只有某些使用者才具有對指定儲存過程的使用權)

(4)當對資料庫進行複雜操作時,可完成複雜的判斷和比較複雜的運算,可用儲存過程封裝起來

(5)易於維護和集中控制,當企業規則變化時在伺服器中改變儲存過程即可。無需修改 應用程式。

簡單的儲存過程:

create proc select_query @year int

asselect * from tmp where year=@year

3.觸發器

(1)觸發器:觸發器可以看成是乙個特殊的儲存過程,儲存過程是要顯示呼叫去完成,而觸發器可以自動完成。比如:當資料庫中的表發生增刪改操作時,對應的觸發器就可以執行對應的pl/sql語句塊

(2)作用:維護表的完整性,記錄表的修改來審計表的相關資訊

分為:dml觸發器:當資料庫伺服器中發生資料操作語言事件時執行的儲存過程,分為:after觸發器和instead of觸發器

ddl觸發器:特殊的觸發器,在響應資料定義語言(ddl)語句時觸發,一般用於資料庫中執行管理任務。ddl觸發器是響應create、after、或drop開頭的語句而啟用

觸發器用處還是很多的,比如校內網、開心網、facebook,你發乙個日誌,自動通知好友,其實就是在增加日誌時做乙個後觸發,再向通知表中寫入條目。因為觸發器效率高

儲存過程與觸發器面試

原文 1.儲存過程和函式 儲存過程重在處理資料,函式可以返回值。1 儲存過程是procedure使用者定義的一系列sql語句的集合,涉及特定表或其他物件的任務,使用者可以呼叫儲存過程。2 函式通常是資料庫已定義的方法,它接收引數並返回某種型別的值並且不涉及特定使用者表。3 可以理解函式是儲存過程的一...

儲存過程和觸發器

儲存過程 stored procedure 是在大型資料庫系統中,一組為了完成特定功能的sql 語句集,經編譯後儲存在資料庫中,使用者通過指定儲存過程的名字並給出引數 如果該儲存過程帶有引數 來執行它。簡單的敘述 在大型資料庫系統中,儲存過程和觸發器具有很重要的作用。無論是儲存過程還是觸發器,都是s...

儲存過程和觸發器

1 什麼是儲存過程呢?定義 將常用的或很複雜的工作,預先用sql語句寫好並用乙個指定的名稱儲存起來,那麼以後要叫資料庫提供與已定義好的儲存過程的功能相同的服務時,只需呼叫execute,即可自動完成命令。講到這裡,可能有人要問 這麼說儲存過程就是一堆sql語句而已啊?microsoft公司為什麼還要...