---
# System prepended metadata

title: MySQL 第三堂0330
tags: [資料庫]

---

# MySQL 第三堂0330

### 多表格Join:
![](https://i.imgur.com/L00Oosj.jpg)

---
### 自我連結(Self Jion)
![](https://i.imgur.com/qKsW2Kx.jpg)

---
### 不相等連結(between and)
![](https://i.imgur.com/rfOeo8J.jpg)

---

### 外部連接(left/right outer join)
-- 左邊/右邊沒有符合條件的也要列出
![](https://i.imgur.com/ECYLEgo.jpg)

---
![](https://i.imgur.com/bkMG3bM.jpg)

------

### 外部連接(full outer join)
-- 兩邊沒有符合條件的都要列出
-- 但My SQL沒有full outer join
-- 所以要使用union把左邊/右邊結合起來
-- **UNION 使用條件: 兩個表格的欄位數量，型態要一樣**
![](https://i.imgur.com/7OkEqDM.jpg)

----

### 外部連接(left/right outer join) + union + is null
-- 只取沒有符合條件的列出
![](https://i.imgur.com/MqkTO8V.jpg)
---------

### 子查詢(Sub-Queries)
子查詢可以放在where、select、from中
![](https://i.imgur.com/1IIEfrV.jpg)

-------
### 單筆紀錄子查詢(用於單筆資料的比較查詢)
單筆紀錄運算子:>、>=、<、<=、!=、=
![](https://i.imgur.com/3X4VhKF.jpg)

-------
### 多筆紀錄子查詢(用於多筆資料的比對查詢)
多筆紀錄運算子: IN、ANY、ALL
**大於(小於)ANY : 比任一值還要大(小)
大於(小於)ALL : 比最大(小)值還要大(小)**

![](https://i.imgur.com/UmmtZyt.jpg)

----------
### Null值出現在子查詢中時
當子查詢中有Null值且運算式為NOT IN時，資料會無法傳回。
![](https://i.imgur.com/IjCwxgK.jpg)

**解決方法: 先排除子查詢中的Null值**
![](https://i.imgur.com/SIhVchp.jpg)

----------

### 相關子查詢(Correlated Subqueries)
概念與自我join很像，子父查詢都是同表格時，以別名來做處理。
特徵是子查詢若沒有父查詢無法自己獨力執行。
![](https://i.imgur.com/mmVdyWm.jpg)

-------

### 存在性測試(EXISTS)
EXISTS與子查詢結合可用於確認資料是否存在
![](https://i.imgur.com/vjRcqKe.jpg)


# 資料處理語言(DML)
**INSTER : 新增資料至資料表中。**
![](https://i.imgur.com/hQFAeYm.jpg)
---
![](https://i.imgur.com/IhfyWNC.jpg)
---
![](https://i.imgur.com/P9TY0R4.jpg)


-------

**UPDATE : 更新資料至資料表中。**
![](https://i.imgur.com/kDblUKC.jpg)
---
![](https://i.imgur.com/YD21bq7.jpg)
---
![](https://i.imgur.com/tZ3uGzO.jpg)
---
![](https://i.imgur.com/CalWmvW.jpg)

------

**DELTED : 刪除資料。**
![](https://i.imgur.com/JWTHUd7.jpg)
----

![](https://i.imgur.com/XAaAESM.jpg)



# 交易控制(Transaction Control)
**1.交易處理時，會今過許多表單的新增、更新修改，而開始交易至交易結束最重要的就是要確認過程中不可有出錯。**
![](https://i.imgur.com/SkFvIQG.jpg)

**2.若過程中有出錯，就必須取消交易，以確保不會出現資料不一致的問題，因此就會需要進行交易控制。**
![](https://i.imgur.com/t3MCZAq.jpg)

**3. My SQL只有InnoDB才支援交易控制，基本控制項如下:**
![](https://i.imgur.com/ICwE8PL.jpg)

----

# 交易處理(Locking)說明
![](https://i.imgur.com/FqOjY60.jpg)
![](https://i.imgur.com/v8YOfEj.jpg)
![](https://i.imgur.com/hHUmc1j.jpg)
![](https://i.imgur.com/CwHWlua.jpg)

### 舉例說明:
![](https://i.imgur.com/8geOIZY.jpg)

![](https://i.imgur.com/E6VDxv9.jpg)

![](https://i.imgur.com/J2v0A0J.jpg)



-----------------------------------------------------

# 錯誤回報
若筆記內有發現錯誤隨時可以登入後在這邊留言~

