mysql 事务关联_MySQL 关联、联合查询,事务ACID见解
MySQL 關(guān)聯(lián)、聯(lián)合查詢,事務(wù)ACID見解
1、關(guān)聯(lián)查詢分為幾種情況:
1.1、內(nèi)連接:
1.1.1、INNER JOIN
INNER JOIN 產(chǎn)生的結(jié)果是兩個(gè)表的交集
1.1.2、CROSS JOIN
CROSS JOIN 把兩個(gè)表的數(shù)據(jù)進(jìn)行一個(gè)N*M的組合,即笛卡爾積。在開發(fā)過程中我們肯定是要過濾數(shù)據(jù),所以這種很少用。
1.2、外連接:
1.2.1、左外連接(LEFT OUTER JOIN)
LEFT [OUTER] JOIN 產(chǎn)生第一個(gè)表的完全集,而第二個(gè)表中有匹配的則有值,沒有匹配的則以null值取代。
1.2.2、右外連接(RIGHT OUTER JOIN)
RIGHT [OUTER] JOIN 產(chǎn)生第二個(gè)表的完全集,而第一個(gè)表中有匹配的則有值,沒有匹配的則以null值取代。
1.2.3、全外連接(FULL OUTER JOIN)
FULL [OUTER] JOIN 產(chǎn)生兩個(gè)表的并集。對(duì)于沒有匹配的記錄,則會(huì)以null做為值。
1.3、自連接:
假設(shè)在【成績(jī)表】有【主鍵ID】【學(xué)生姓名】【課程名稱】【成績(jī)】等字段。
現(xiàn)在要查詢 “語文成績(jī)>=數(shù)學(xué)成績(jī)”的學(xué)生姓名,這時(shí)就可以使用自連接查詢:
select 【學(xué)生姓名】
from 【成績(jī)表】 AS a,【成績(jī)表】 AS b
where a.【主鍵ID】=b.【主鍵ID】
and a.【成績(jī)】>=b.【成績(jī)】
and a.【課程名稱】='語文'
and b.【課程名稱】=數(shù)學(xué)
自連接是指使用表的別名實(shí)現(xiàn)表與其自身連接的查詢方法。
2、聯(lián)合查詢一般是指:
將兩個(gè)或兩個(gè)以上SELECT語句的查詢結(jié)果集合合并成一個(gè)結(jié)果集合顯示。涉及到UNION運(yùn)算符
3、關(guān)連查詢主要是指:
2個(gè)或以上的表通過外鍵等方式進(jìn)行關(guān)聯(lián),進(jìn)而查詢出自己需要的內(nèi)容
舉個(gè)例子:
select * from table1 a,table 2 b
where a.name=b.name;
以上是個(gè)人見解 如有錯(cuò)誤 請(qǐng)各位大神指正
4、事務(wù)
4.1、事務(wù)四點(diǎn)見解
一個(gè)支持事務(wù)的數(shù)據(jù)庫必須要有這四種特性,不然在處理事務(wù)過程中無法保證數(shù)據(jù)庫中數(shù)據(jù)的正確性、準(zhǔn)確性,在一點(diǎn)情況下達(dá)不到雙方的要求。
4.1.1、原子性【Atomicity】
非常強(qiáng)硬的告訴你在數(shù)據(jù)庫數(shù)據(jù)中要不就全部成功完成,要不就全部不成功完成,不存在卡殼在中間的過程中,存在的特性就是,在事務(wù)處理、運(yùn)行中出現(xiàn)錯(cuò)誤后會(huì)回滾到?jīng)]開始事務(wù)的時(shí)候,就是說回滾后就如同一個(gè)新的一樣,從沒執(zhí)行過一樣。
4.1.2、一致性【Consistency】
不管在事務(wù)是否在執(zhí)行還是不在執(zhí)行,不管有多少事務(wù)同時(shí)執(zhí)行它們的狀態(tài)是統(tǒng)一的,就拿買西瓜為例子,有三個(gè)賣西瓜的,每個(gè)賣家都有10個(gè)西瓜,每個(gè)西瓜10塊錢,買西瓜的有300塊錢,他將三個(gè)賣西瓜的西瓜全買了,這個(gè)時(shí)候賣西瓜的三個(gè)人就各有等價(jià)的100元,買西瓜的有價(jià)值300元的西瓜。
總價(jià)是不變的 總共是30個(gè)西瓜,300元錢,只是換了主人。
存在的特性就是保護(hù)以及不變性!!!
4.1.3、隔離性【Isolation】
隔離性從名字就可以看出來具體的意思,咱們處理事務(wù)的時(shí)候可能同時(shí)處理很多,不注意就可能混淆了,而為了處理這種情況就會(huì)將事務(wù)進(jìn)行串行化或者序列化請(qǐng)求,好讓數(shù)據(jù)庫在同一時(shí)間僅有一個(gè)請(qǐng)求用于同一數(shù)據(jù)。
4.1.4、持久性【Durability】
持久啊,男人很熟悉的兩個(gè)字,在事務(wù)指的意思可是大不相同,但效果是同樣的,當(dāng)事務(wù)在數(shù)據(jù)庫中操作后所做的變動(dòng)持久化的保留在數(shù)據(jù)庫當(dāng)中,不會(huì)出現(xiàn)回滾情況。
4.2、事務(wù)操作用法
4.2.1、啟動(dòng)事務(wù)(start transaction/begin)
4.2.2、mysql需求操作
4.2.3、成功提交,失敗回滾(commit/rollback)
總結(jié)
以上是生活随笔為你收集整理的mysql 事务关联_MySQL 关联、联合查询,事务ACID见解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql内存体系结构_Innodb存储
- 下一篇: centeos 6.7 mysql 5.