您好,登錄后才能下訂單哦!
==========視圖============
數據庫中的虛擬表,相當于軟鏈接
作用:一張表中的數據給不同的權限用戶提供訪問
假設一張表:
公司員工績效工資考核表
工號 姓名 年齡 崗位 績效 工資
1 Tom 50 總裁 100萬
2 Jerry 42 總監 90 20萬
3 charry 30 云計算工程師 80 12萬
4 Jack 24 云計算工程師 90 15萬
語法: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; #一旦提交就不可更改
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。