1.什麼是存儲過程,有哪些優缺點?
存儲過程是在大型數據庫中,一組爲了完成特定功能的SQL語句集,它存儲在數據庫中,一次編譯以後永久生效,用戶經過去指定存儲過程的名字並給出參數來執行它。
優勢:
能夠重複使用,減小開發人員工做量
對於網絡上的服務器,能夠大大減小網絡流量,只須要傳遞存儲過程的名稱便可,能夠替代大量T_SQL語句,下降了網絡通訊量,提升通訊效率
能夠防止用戶對錶的直接訪問,只須要賦予用戶存儲過程的訪問權限
缺點:
每一個數據庫的存儲過程語法幾乎不同,不通用且難以維護
業務邏輯放在數據庫上,難以迭代
2.什麼是視圖,視圖的應用場景有哪些?
從一個或多個表導出的虛擬的表,其內容由具體的查詢內容定義。視圖和普通表的結構相同,但不實現數據的存儲。
從用戶視角看,一個視圖是從一個特定的角度來查看數據庫中的數據;從數據庫內部看,一個視圖是由SELECT語句組成的查詢定義的虛擬表。視圖僅能夠查,不能增刪改。
經常使用場景:
1.簡化操做
將經常使用的聚合函數或多表查詢這些查詢語句放到視圖中,簡化了操做,每次只要select * from view就能夠了。
2.安全性
只讓用戶查看部分數據,同時,用戶沒法對視圖進行隨意的修改和刪除,增長了安全性。
3.存儲過程和視圖的區別?
目的不一樣。
存儲過程每每涉及不少的數據處理,是一個複雜的過程,它至關於一個函數能夠接受參數,主要用於處理數據;
視圖是把現有數據以新的形式展示出來,最終目的是爲了呈現數據。