數(shù)據(jù)庫(kù)大佬講課7

-----事務(wù)處理

在數(shù)據(jù)庫(kù)中跷坝,事務(wù)由一組相關(guān)的DML或select語(yǔ)句杨凑,加上一個(gè)TPL語(yǔ)句(commit ,rollback)或一個(gè)DDL語(yǔ)句(create,alter,drop,truncate等)或一個(gè)DCL(grant,revoke)語(yǔ)句
事務(wù)特征可用四個(gè)字母的縮寫表示:即ACID
--原子性(atomicity)
事務(wù)就像原子一樣魔熏,不可被分割。組成事務(wù)的DML操作語(yǔ)句要么全成功蹄胰,要么全失敗,不可能出現(xiàn)部分成功部分失敗的情況
--一致性(Consistency)
一旦事務(wù)完成,不管是成功的赡勘,還是失敗的,整個(gè)系統(tǒng)處于數(shù)據(jù)一致的狀態(tài)
--隔離性(Isolation)
一個(gè)事務(wù)的執(zhí)行不會(huì)被另一個(gè)事務(wù)所干擾捞镰。比如兩個(gè)人同時(shí)從一個(gè)賬戶中取錢闸与,通過事務(wù)的隔離性確保賬戶余額的正確性
--持久性(durability)
也稱為永久性,指事務(wù)一旦提交岸售,對(duì)數(shù)據(jù)的改變就是永久的践樱,不可能再被回滾。

----MySQL的事務(wù)處理主要有兩種方法
--1.用begin,rollback,commit來(lái)實(shí)現(xiàn)
begin開始一個(gè)事務(wù)
rollback事務(wù)回滾
commit 事務(wù)提交
--2.直接用set來(lái)改變MySQL的自動(dòng)提交模式
MySQL默認(rèn)是自動(dòng)提交的凸丸,也就是你提交一個(gè)sql拷邢,就直接執(zhí)行!可以通過
show variables like '%autocommit%'查看自動(dòng)事務(wù)
set autocommit =0或者off 禁止自動(dòng)提交
set autocommit =1或者on 開啟自動(dòng)提交
來(lái)實(shí)現(xiàn)事務(wù)的處理
但要注意當(dāng)用set autocommit =0 的時(shí)候屎慢,以后所有的sql都將作為事務(wù)處理瞭稼,直到用commit確認(rèn)或rollback結(jié)束忽洛,注意當(dāng)結(jié)束這個(gè)事務(wù)的同時(shí)也開啟了新的事務(wù)!按第一種方法只將當(dāng)前的做為一個(gè)事務(wù)

----隱式結(jié)束
--隱式提交
當(dāng)下列任意一種情況發(fā)生時(shí)环肘,會(huì)發(fā)生隱式提交
-執(zhí)行一個(gè)DDL(create,alter,drop,truncate,rename)語(yǔ)句
-執(zhí)行一個(gè)DCL(grant,revoke)語(yǔ)句欲虚;
--隱式回滾
當(dāng)下列任意一種情況發(fā)生時(shí),會(huì)發(fā)生隱式回滾
客戶端強(qiáng)行退出
客戶端連接到服務(wù)器端異常中斷
系統(tǒng)崩潰

---設(shè)置保存點(diǎn)
如果在一個(gè)事務(wù)內(nèi)悔雹,想要回滾到指定位置复哆,不是回滾到事務(wù)的起始點(diǎn),可以通過保存點(diǎn)(savepoint)來(lái)實(shí)現(xiàn)
savepoint savepointname  定義一個(gè)保存點(diǎn)語(yǔ)句
rollback to savepointname 回滾到指定保存點(diǎn)
練習(xí)練習(xí)
insert into dept values(103,'錢如','沈陽(yáng)');
show variables like'%autocommit%';
set autocommit =off;--關(guān)閉自動(dòng)事務(wù)
begin;--開始事務(wù)操作
insert into dept values(107,'錢如你我','沈陽(yáng)');
commit;提交 如果用rollback 就是回滾到最開始
savepoint sp1;設(shè)置保存點(diǎn)回滾點(diǎn)
insert into dept values(108,'錢你我','沈陽(yáng)');
rollback to sp1;撤銷操作到spl保存點(diǎn)
commit腌零;將所有修改寫入數(shù)據(jù)庫(kù)
rollback;這里操作不行了因?yàn)椴僮饕呀?jīng)commit,不能回滾了
 start transaction;手動(dòng)開啟事務(wù) 相當(dāng)于begin

------視圖

視圖是邏輯上來(lái)自一個(gè)或者多個(gè)表的數(shù)據(jù)集合
--為什么使用視圖
-限制其它用戶對(duì)數(shù)據(jù)庫(kù)的訪問,因?yàn)橐晥D可以有選擇性的現(xiàn)實(shí)數(shù)據(jù)庫(kù)表的一部分
-容易實(shí)現(xiàn)復(fù)雜的查詢
-對(duì)于相同的數(shù)據(jù)可以產(chǎn)生不同的視圖
-----創(chuàng)建視圖
創(chuàng)建視圖語(yǔ)法:
create [or replace]
view view_name[(column_list)]
as select_statement;
or replace 如果所創(chuàng)建的視圖已經(jīng)存在寂恬,該選項(xiàng)表示修改原視圖的定義
view_name 視圖的名稱
column_list 列名,列名的數(shù)量必須和視圖所對(duì)應(yīng)查詢語(yǔ)句的列數(shù)量相等
select_statement 一條完整的select語(yǔ)句
例子:
create view salvu
as select empno EMPNO ,ename ENAME ,sal SALARY
from emp
where deptno=30;
從視圖檢索數(shù)據(jù)
從視圖中檢索數(shù)據(jù)莱没,同從表中檢索數(shù)據(jù)一樣初肉,只不過是只能看到視圖所定義的那些列
修改視圖
create or replace view 子句修改視圖emp 為每個(gè)列添加別名
create view 子句中別名的順序必須和內(nèi)部查詢中的列的順序一一對(duì)應(yīng)
--視圖上執(zhí)行DML操作
可以通過視圖向基表插入數(shù)據(jù),只要視圖中不出現(xiàn)以下情況1.group 函數(shù)2.group by子句3.distinct 關(guān)鍵字
可以通過視圖修改基表中數(shù)據(jù)饰躲,只要視圖中不出現(xiàn)以下情況:1.group 函數(shù) group by子句牙咏,distinct關(guān)鍵字2.使用表達(dá)式定義的列
可以通過視圖向基表插入數(shù)據(jù),只要視圖中不出現(xiàn)以下情況:1.group函數(shù)嘹裂,group by 子句妄壶,distinct 關(guān)鍵字2.使用表達(dá)式定義的列3.基表中未在視圖中選擇的其它列定義為非空并且沒有默認(rèn)值
---刪除視圖
刪除視圖并不會(huì)刪除數(shù)據(jù),因?yàn)橐晥D是基于數(shù)據(jù)庫(kù)中的基表的虛表

------索引

索引是一種特殊的數(shù)據(jù)庫(kù)結(jié)構(gòu)寄狼,可以用來(lái)快速查詢數(shù)據(jù)庫(kù)表中的特定記錄丁寄。索引是提高數(shù)據(jù)庫(kù)性能的重要方式。
MySQL中泊愧,所有的數(shù)據(jù)類型都可以被索引
----創(chuàng)建索引是指在某個(gè)表的一列或多列上建立一個(gè)索引伊磺,以便提高對(duì)表的訪問速度。創(chuàng)建索引的三種方式删咱,這三種方式分別是:
-創(chuàng)建表的時(shí)候創(chuàng)建索引
-在已經(jīng)存在的表上創(chuàng)建索引
-使用alter table 語(yǔ)句來(lái)創(chuàng)建索引
例子:
普通索引
create table index1(
id int,
name  varchar(20),
sex boolean,
index(id)
);
創(chuàng)建唯一性索引
create table index2(
id int unique,
name varchar(20),
unique index index2_id(id asc)
);
創(chuàng)建全文索引只能創(chuàng)建在char,varchar或text類型的字段上屑埋,而且,現(xiàn)在只有MyISAM存儲(chǔ)引擎支持全文索引
create table index3(
id int,
info varchar(20),
Fulltext index index3_info(info)
)engine=myisam;
使用多列索引時(shí)一定要特別注意痰滋,只有使用了索引中的第一個(gè)字段時(shí)才會(huì)觸發(fā)索引摘能。如果沒有使用索引中的第一個(gè)字段,那么這個(gè)多列索引就不會(huì)起作用
在已經(jīng)存在的表上敲街,可以通過Alter table 語(yǔ)句直接為表上的一個(gè)或者幾個(gè)字段創(chuàng)建索引团搞。
alter table 表名 add 
[unique | fulltext|spatial]index
索引名(屬性名[(長(zhǎng)度)asc|desc]);
刪除索引
drop index 索引名 on 表名;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末多艇,一起剝皮案震驚了整個(gè)濱河市逻恐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖梢莽,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異奸披,居然都是意外死亡昏名,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門阵面,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)轻局,“玉大人,你說(shuō)我怎么就攤上這事样刷÷仄耍” “怎么了?”我有些...
    開封第一講書人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵置鼻,是天一觀的道長(zhǎng)镇饮。 經(jīng)常有香客問我,道長(zhǎng)箕母,這世上最難降的妖魔是什么储藐? 我笑而不...
    開封第一講書人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮嘶是,結(jié)果婚禮上钙勃,老公的妹妹穿的比我還像新娘。我一直安慰自己聂喇,他們只是感情好辖源,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著希太,像睡著了一般克饶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上誊辉,一...
    開封第一講書人閱讀 51,521評(píng)論 1 304
  • 那天彤路,我揣著相機(jī)與錄音,去河邊找鬼芥映。 笑死洲尊,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的奈偏。 我是一名探鬼主播坞嘀,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼惊来!你這毒婦竟也來(lái)了丽涩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎矢渊,沒想到半個(gè)月后继准,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡矮男,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年移必,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片毡鉴。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡崔泵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出猪瞬,到底是詐尸還是另有隱情憎瘸,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布陈瘦,位于F島的核電站幌甘,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏痊项。R本人自食惡果不足惜含潘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望线婚。 院中可真熱鬧遏弱,春花似錦、人聲如沸塞弊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)游沿。三九已至饰抒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間诀黍,已是汗流浹背袋坑。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留眯勾,地道東北人枣宫。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像吃环,于是被迫代替她去往敵國(guó)和親也颤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容