溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

MySQL數(shù)據(jù)庫(kù)入門(mén)——淺析 視圖和事務(wù)

發(fā)布時(shí)間:2020-07-20 06:56:19 來(lái)源:網(wǎng)絡(luò) 閱讀:860 作者:若恒 欄目:MySQL數(shù)據(jù)庫(kù)

==========視圖============

數(shù)據(jù)庫(kù)中的虛擬表,相當(dāng)于軟鏈接

作用:一張表中的數(shù)據(jù)給不同的權(quán)限用戶(hù)提供訪(fǎng)問(wèn)


假設(shè)一張表:

公司員工績(jī)效工資考核表

工號(hào)     姓名     年齡      崗位                   績(jī)效        工資

1      Tom         50         總裁                                 100萬(wàn)

2      Jerry         42         總監(jiān)                  90           20萬(wàn)

3      charry      30         云計(jì)算工程師     80           12萬(wàn)

4      Jack         24         云計(jì)算工程師     90           15萬(wàn)


語(yǔ)法:create view 視圖名稱(chēng) as  (可加)select 語(yǔ)句


創(chuàng)建查找成績(jī)大于80 的表形成 視圖

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


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

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


==========事務(wù)============

數(shù)據(jù)庫(kù)事務(wù)(Database Transaction) ,是指作為單個(gè)邏輯工作單元執(zhí)行的一系列操作,要么完全地執(zhí)行,要么完全地不執(zhí)行。 事務(wù)處理可以確保除非事務(wù)性單元內(nèi)的所有操作都成功完成,否則不會(huì)永久更新面向數(shù)據(jù)的資源。通過(guò)將一組相關(guān)操作組合為一個(gè)要么全部成功要么全部失敗的單元,可以簡(jiǎn)化錯(cuò)誤恢復(fù)并使應(yīng)用程序更加可靠。


一個(gè)邏輯工作單元要成為事務(wù),必須滿(mǎn)足所謂的ACID(原子性、一致性、隔離性和持久性)屬性。事務(wù)是數(shù)據(jù)庫(kù)運(yùn)行中的邏輯工作單位,由DBMS中的事務(wù)管理子系統(tǒng)負(fù)責(zé)事務(wù)的處理。


一組操作共同執(zhí)行或者都不執(zhí)行,結(jié)果保持一致。


假設(shè)舉例:銀行轉(zhuǎn)賬

姓名                余額          【條件是余額一定要大于0】

zhangsan       100

lisi                  200


假設(shè)操作:zhangsan轉(zhuǎn)賬100給lisi  (操作是不成立的)


銀行數(shù)據(jù)庫(kù)轉(zhuǎn)賬的執(zhí)行過(guò)程語(yǔ)句:

begin   #開(kāi)始

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

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

rollback   #回滾

commit    #提交

#因?yàn)閦hangsan的賬戶(hù)余額不能等于0,所以語(yǔ)句不成立,直接執(zhí)行rollback   #回滾。


原理:只要有一條語(yǔ)句不能執(zhí)行成功就回滾

要么執(zhí)行,保持結(jié)果一致性,

要么就是回滾到begin最開(kāi)始的時(shí)候(內(nèi)存中進(jìn)行的操作),都不執(zhí)行


set命令:

set autocommit=0    #禁止自動(dòng)提交  等同于begin

set autocommit=1     #開(kāi)啟自動(dòng)提交 


在begin事務(wù)操作中

savepoint s1;      #相當(dāng)于快照,保存當(dāng)前的mysql操作

rollback to savepoint s1;      #回滾到之前的保存點(diǎn)

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

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI