當前位置:
首頁 > 知識 > 數據應用達人之SQL基礎教程分享13-存儲過程與事務

數據應用達人之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顯示屏的詳細信息 ...