數據應用達人之SQL基礎教程分享13-存儲過程與事務
存儲不簡單
2.存儲過程1、什麼是存儲過程【知識點介紹】簡單的解釋,存儲過程就是將一條或多條SQL語句保存起來,以方便以後反覆使用。
而且存儲過程都有一個特性,特別是在有多條SQL語句的情況下,如果有一條語句執行失敗,則全部不執行,只有在全部語句都執行成功的情況下,才會通過。
(Access和SQLite不支持存儲過程)
2、執行存儲【知識點介紹】執行存儲遠比編寫要複雜的多,雖然語句很簡單,SQL中使用EXECUTE關鍵字來執行存儲過程。 EXECUTE接收存儲過程名和需要傳遞給它的參數。
EXECUTE 存儲過程名
(參數1,參數2,......)
3.創建存儲過程【知識點介紹】
創建存儲過程不是一個簡單的事情,如果你想要了解詳細的內容,我們建議你可以從具體的資料庫軟體入手學習。
在這裡,我們只是舉一個例子,讓大家對創建存儲過程有一個感性的認識。
我們為學生表創建一個myprocess的存儲過程,用來給學生添加新的學生,傳遞的參數是ID和SName:
CREATE PROCEDURE myprocess(
ID INT IN,
SName VARCHAR IN)
IS
N_ID INT,
N_Name VARCHAR;
BEGIN
INSERT INTO student
VALUES (N_ID,N_Name);
END;
創建好了存儲過程,我們就可以使用EXECUTE來執行插入學生數據的這個存儲過程了:
EXECUTE myprocess(20161555,"Bill");
當然你可以在創建存儲過程的時候,要求添加更多的參數。
事務管家
3.事務管理1、什麼是事務管理【知識點介紹】事務實際上是指一個或多個SQL語句,事務管理則是對事務進行管理,以維護資料庫的完整性。簡單說,SQL語句要麼完全執行,要麼完全不執行,這就是SQL里的事務管理(Transaction Processing)。
事務管理有以下幾個關鍵詞:
TRANSACTION,事務,指一條或一組SQL語句;
ROLLBACK,回退,指撤銷指定的SQL語句的過程,即撤銷;
COMMIT,提交,指將未執行的SQL語句的結果寫入資料庫,即保持更改;
SAVEPOINT,保留點,指事務處理中設置的佔位符_,可 以對它發布回退(與回退整個事務處理不同)。
不同的資料庫軟體控制事務管理的方法也都各不相同,比如:
-- MySQL
START TRANSACTION
......
-- Oracle
SET TRANSACTION
......
2、ROLLBACK【知識點介紹】
ROLLBACK命令可以用來回退、撤銷SQL語句,但不是所有SQL語句都是可以被撤銷的。
INSERT、UPDATE、DELETE語句我們是可以撤銷的,但對SELECT語句(因為SELECT沒有必要撤銷)、CREATE、DROP操作是無效的。
假如我們用DELETE刪除了學生表中的某一行值,通過ROLLBACK是可以撤銷的:
DELETE FROM student
WHERE ID = 20160014;
ROLLBACK;
3、COMMIT與保留點【知識點介紹】
由於不同資料庫的使用都有所不同,所以我們只對COMMIT和保留點做一個簡單的介紹。 COMMIT是為了保證數據完整執行的一個關鍵字,假如我們現在有這樣一段代碼
START TRANSACTION
DELETE FROM 表;
DELETE FROM 表2;
COMMIT;
COMMIT的作用在於,如果我們的第一句DELETE語句是正確的,但第二句DELETE是錯誤的,則這段TRANSACTION就不會被執行,說明了COMMIT僅在所有語句都不出錯時才會真正執行,從而保護了數據。
保留點,在MySQL中的用法是:
SAVEPOINT delete1;
保留點多用於更為複雜的事務管理,即在事務處理的過程中添加佔位符(即保留點),如果需要回退,則可以退到我們指定的保留點。從維護數據的層面上來說,處理事務的時候,原則上保留點設置越多越好。
如果你想要了解更多關於SQL事務管理的內容,我們依舊建議大家從具體的資料庫軟體語言入手。
下文待續。。。。。。
歡迎大家前往訪問我們的官網:
http://www.datanew.com/datanew/homepage
http://www.lechuangzhe.com/homepage
TAG:達人科技 |
※YAK-130型教練機研發過程與義大利馬基有何關係?合作分享
※達觀數據2018Qcon分享深度學習前沿應用,文本智能處理前景無限
※120款高端商務PPT分享,世界500強公司都在使用
※CVPR 2018 中國論文分享會之「GAN 與合成」
※3天對話300人!熱巢在WPP Stream Asia 2018熱力分享數字營銷與商業模式
※H5教程,給大家分享一個HTML5Plus移動應用
※RAW264.7細胞培養經驗分享
※論文分享-QANet
※PS學習教程-用PS製作鉛筆畫案例分享
※2016軟體教程分享
※區塊鏈+數據安全項目分享-數據盾陀螺財經VALUE100線下活動第二期
※CVPR 2018 中國論文分享會 之「深度學習」
※更加時尚運動 HUAWEI WATCH 2 2018版體驗分享
※4G流量卡秒變家庭Wi-Fi 華為4G路由 2體驗分享
※「GFRIEND」「分享」180508 誰的廚藝最棒?GFRIEND料理實力大探究
※ILIFE天目 x660掃地機器人體驗分享
※3D列印數據模型之經驗分享
※MBTI在項目管理中的應用——IBM分享案例
※武器裝備設計分享-7.GAME
※Google和LG分享有關專為下一代VR耳機設計的1,443ppi OLED顯示屏的詳細信息 ...