(一)存儲過程與函數(shù)
什么是存儲過程潜必?有哪些優(yōu)缺點段标?
存儲過程是一個預編譯的SQL語句,優(yōu)點是允許模塊化的設計可款,就是說只需要創(chuàng)建一次育韩,以后在該程序中就可以調用多次。如果某次操作需要執(zhí)行多次SQL闺鲸,使用存儲過程比單純SQL語句執(zhí)行要快筋讨。
優(yōu)點
1)存儲過程是預編譯過的,執(zhí)行效率高摸恍。
2)存儲過程的代碼直接存放于數(shù)據(jù)庫中悉罕,通過存儲過程名直接調用赤屋,減少網絡通訊。
3)安全性高壁袄,執(zhí)行存儲過程需要有一定權限的用戶类早。
4)存儲過程可以重復使用,減少數(shù)據(jù)庫開發(fā)人員的工作量嗜逻。
缺點
1)調試麻煩涩僻,但是用 PL/SQL Developer 調試很方便!彌補這個缺點栈顷。
2)移植問題逆日,數(shù)據(jù)庫端代碼當然是與數(shù)據(jù)庫相關的。但是如果是做工程型項目妨蛹,基本不存在移植問題屏富。
3)重新編譯問題,因為后端代碼是運行前編譯的蛙卤,如果帶有引用關系的對象發(fā)生改變時狠半,受影響的存儲過程、包將需要重新編譯(不過也可以設置成運行時刻自動編譯)颤难。
4)如果在一個程序系統(tǒng)中大量的使用存儲過程神年,到程序交付使用的時候隨著用戶需求的增加會導致數(shù)據(jù)結構的變化,接著就是系統(tǒng)的相關問題了行嗤,最后如果用戶想維護該系統(tǒng)可以說是很難很難已日、而且代價是空前的,維護起來更麻煩栅屏。
(二)觸發(fā)器
1. 什么是觸發(fā)器飘千?觸發(fā)器的使用場景有哪些?
觸發(fā)器是用戶定義在關系表上的一類由事件驅動的特殊的存儲過程栈雳。觸發(fā)器是指一段代碼护奈,當觸發(fā)某個事件時,自動執(zhí)行這些代碼哥纫。
使用場景
a.可以通過數(shù)據(jù)庫中的相關表實現(xiàn)級聯(lián)更改霉旗。
b.實時監(jiān)控某張表中的某個字段的更改而需要做出相應的處理。
c.例如可以生成某些業(yè)務的編號蛀骇。
d.注意不要濫用厌秒,否則會造成數(shù)據(jù)庫及應用程序的維護困難。
e.大家需要牢記以上基礎知識點擅憔,重點是理解數(shù)據(jù)類型CHAR和VARCHAR的差異鸵闪,表存儲引擎InnoDB和MyISAM的區(qū)別。
2. MySQL中都有哪些觸發(fā)器雕欺?
在MySQL數(shù)據(jù)庫中有如下六種觸發(fā)器:
a.Before Insert
b.After Insert
c.Before Update
d.After Update
e.Before Delete
f.After Delete
最后岛马,小編分類整理了許多java進階學習材料和BAT面試給熱愛IT行業(yè)的你棉姐,如果需要資料的請轉發(fā)此文章后再私聊小編回復【java】就能領取2019年java進階學習資料和BAT面試題以及《Effective Java》(第3版)電子版書籍屠列。也可以加群:712263501領取海量學習資料進行學習啦逆。