MySQL數據庫入門——淺析 視圖和事務

==========視圖============mysql

數據庫中的虛擬表,至關於軟連接sql

做用:一張表中的數據給不一樣的權限用戶提供訪問數據庫


假設一張表:ide

公司員工績效工資考覈表雲計算

工號     姓名     年齡      崗位                   績效        工資spa

1      Tom         50         總裁                                 100萬事務

2      Jerry         42         總監                  90           20萬內存

3      charry      30         雲計算工程師     80           12萬資源

4      Jack         24         雲計算工程師     90           15萬it


語法:create view 視圖名稱 as  (可加)select 語句


建立查找成績大於80 的表造成 視圖

create view score_view as select * from info where score >80;


修改視圖也是意味着修改表

update score_view set score=88 where name='lisi';


==========事務============

數據庫事務(Database Transaction) ,是指做爲單個邏輯工做單元執行的一系列操做,要麼徹底地執行,要麼徹底地不執行。 事務處理能夠確保除非事務性單元內的全部操做都成功完成,不然不會永久更新面向數據的資源。經過將一組相關操做組合爲一個要麼所有成功要麼所有失敗的單元,能夠簡化錯誤恢復並使應用程序更加可靠。


一個邏輯工做單元要成爲事務,必須知足所謂的ACID(原子性、一致性、隔離性和持久性)屬性。事務是數據庫運行中的邏輯工做單位,由DBMS中的事務管理子系統負責事務的處理。


一組操做共同執行或者都不執行,結果保持一致。


假設舉例:銀行轉帳

姓名                餘額          【條件是餘額必定要大於0】

zhangsan       100

lisi                  200


假設操做:zhangsan轉帳100給lisi  (操做是不成立的)


銀行數據庫轉帳的執行過程語句:

begin   #開始

update bank set money=money-100 where name=‘zhangsan’

update bank set money=money+100 where name=‘lisi’

rollback   #回滾

commit    #提交

#由於zhangsan的帳戶餘額不能等於0,因此語句不成立,直接執行rollback   #回滾。


原理:只要有一條語句不能執行成功就回滾

要麼執行,保持結果一致性,

要麼就是回滾到begin最開始的時候(內存中進行的操做),都不執行


set命令:

set autocommit=0    #禁止自動提交  等同於begin

set autocommit=1     #開啓自動提交 


在begin事務操做中

savepoint s1;      #至關於快照,保存當前的mysql操做

rollback to savepoint s1;      #回滾到以前的保存點

commit;    #一旦提交就不可更改

相關文章
相關標籤/搜索