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