1. 程式人生 > >表、檢視、儲存過程、函式、觸發器、事件

表、檢視、儲存過程、函式、觸發器、事件

儲存過程(Stored Procedure)是一組為了完成特定功能的SQL語句集,經編譯後儲存在資料庫中。使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。儲存過程是資料庫中的一個重要物件,任何一個設計良好的資料庫應用程式都應該用到儲存過程。

函式

l過程不必返回值l函式必須返回值l過程可以有OUT和IN OUT引數l函式只能有IN引數l過程不可以在SQL語句中呼叫l某些函式可以在SQL語句中呼叫

檢視

檢視是一個虛擬表,其內容由查詢定義。同真實的表一樣,檢視包含一系列帶有名稱的列和行資料。但是,檢視並不在資料庫中以儲存的資料值集形式存在。行和列資料來自由定義檢視的查詢所引用的表,並且在引用檢視時動態生成。對其中所引用的基礎表來說,檢視的作用類似於篩選。定義檢視的篩選可以來自當前或其它資料庫的一個或多個表,或者其它檢視。分散式查詢也可用於定義使用多個異類源資料的檢視

檢視的查詢條件是固定的,而儲存過程可以通過給裡面的引數賦值達到查詢條件靈活變化的效果。

檢視,在你每次查詢時,都需要重新生成執行計劃。而儲存過程第一次編譯完成後。以後就不需要再次編譯了,速度比檢視快  檢視是一個綜合一個或多個表組成的虛擬表,  儲存過程是一個程式

這麼說吧,過程相當於一個暗箱,內部可以做一些實際的操作,檢視相當於一個視窗,方便你看,避免你東張西望

檢視是由查詢結果生成的虛擬的表。  我們可以對檢視進行增加、修改和更新的操作  只是要有一定的限制   只要保證檢視中所涉及的欄位全部來源於一個表,  而且不能使用派生欄位,一定是表中的原有欄位  還有一點就是,沒有出現在檢視的其它欄位,在建立表時  一定是允許空,這樣我們就可以操作檢視來影響原表啦。  我們可以把檢視當做表來操作,  而儲存過程不是表,我們不可以直接操作它,只可以查詢。  在某種程度上,儲存過程的執行速度要比普通的檢索語句要快。  而且比較靈活,如果同等條件都可以用檢視和儲存過程來實現的話,  我選擇儲存過程  至於安全性嗎,我覺得儲存過程的安全性要高於檢視。

兩個完全不同的概念:  檢視是從一個或多個基本表中匯出來的表。  儲存過程則是一段程式,是一組編譯好的T_SQL程式碼

沒啥比較性,檢視類似於表啊,儲存過程是屬於方法

檢視相當於虛擬表,儲存過程可以處理一些業務邏輯