==========視圖============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; #一旦提交就不可更改