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