Please enable JavaScript.
Coggle requires JavaScript to display documents.
SQL Structured Query Language - Coggle Diagram
SQL
Structured Query Language
https://www.fooish.com/sql/
JOIN
Left Join (Left Outer Join)
定義:
LEFT JOIN 可以用來建立左外部連接,查詢的 SQL 敘述句 LEFT JOIN 左側資料表 (table_name1) 的所有記錄都會加入到查詢結果中,即使右側資料表 (table_name2) 中的連接欄位沒有符合的值也一樣。
語法範例:
SELECT table_column1, table_column2 FROM table_name1 LEFT JOIN table_name2 ON table_name1.column_name=table_name2.column_name;
自己的話:
有兩個Table(A/B), 用兩個Table 共同的欄位(eg: id), 查詢並列出Table_A中所有的abc欄位列表, 再列出Table_B的efg欄位, 若為空則顯示為null
Left Join
簡述: 左邊Table全部 加上 兩個Table的交集
Right Join (Right Outer Join)
語法範例:
SELECT table_column1, table_column2 FROM table_name1 RIGHT JOIN table_name2 ON table_name1.column_name=table_name2.column_name;
自己的話:
有兩個Table(A/B), 用兩個Table 共同的欄位(eg: id), 查詢並列出Table_B中所有的efg欄位列表, 再列出Table_A的abc欄位, 若為空則顯示為null
定義:
RIGHT JOIN 可以用來建立右外部連接,查詢的 SQL 敘述句 RIGHT JOIN 右側資料表 (table_name2) 的所有記錄都會加入到查詢結果中,即使左側資料表 (table_name1) 中的連接欄位沒有符合的值也一樣。
Right Join
簡述: 右邊Table全部 加上 兩個Table的交集
Inner Join
自己的話:
有兩個Table(A/B), 用兩個Table 共同的欄位(eg: id), 查詢並列出Table_A的abc欄位, 和Table_B的efg欄位
定義:
INNER JOIN (內部連接) 為等值連接,必需指定等值連接的條件,而查詢結果只會返回符合連接條件的資料。
語法範例:
SELECT table.column1, table.column2 FROM table_name_1 INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name;
Inner Join
簡述: 兩個Table的交集
FULL Join
定義:
FULL JOIN 即為 LEFT JOIN 與 RIGHT JOIN 的聯集,它會返回左右資料表中所有的紀錄,不論是否符合連接條件。
MySQL 資料庫中沒有 FULL JOIN,但是可以用 UNION 來模擬
自己的話:
有兩個Table(A/B), 用兩個Table 共同的欄位(eg: id),查詢並列出兩個Table中所有的欄位, 若為空則顯示為null
簡述: 兩個Table的聯集
Full Join
UNION
語法範例:
SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2;
NOTE:
UNION 與 JOIN 不同的地方在於,JOIN 是作橫向結合 (合併多個資料表的各欄位);而 UNION 則是作垂直結合 (合併多個資料表中的紀錄)。
UNION 查詢返回的資料集欄位名稱,通常會依據第一個 SELECT 查詢的欄位名稱。
自己的話:
定義:
UNION 運算子用來將兩個(以上) SQL 查詢的結果合併起來,而由 UNION 查詢中各別 SQL 語句所產生的欄位需要是相同的資料型別及順序。
UNION
簡述: 兩個Table的聯集
UNION 查詢只會返回不同值的資料列
UNION ALL 則會列出所有的資料,不論是否重複
語法列表
基礎
AVG()
COUNT()
COUNT 計算 NULL 以外的資料筆數:
SELECT COUNT(*)
FROM users;
MAX()
MIN()
SUM()
ROUND()
FORMAT()
WHERE
年齡大於 20 歲且為女性:
SELECT age
FROM users
WHERE age > 20 AND gender == 'Female';
進階
LIMIT
LIKE
IN
JOIN
ALTER
UNION
AUTO-INCREMENT(自增)
ORDER BY
設定由大到小 DESC
SELECT * FROM users
ORDER BY age DESC;
GROUP BY
將資料透過性別分組,然後統計男女數量:
SELECT gender, COUNT(*)
FROM users;
GROUP BY gender;
HAVING
DEFAULT
語法清單網站
DB 分類
關聯式資料庫(Relational Database Management System,縮寫為RDBMS)
NoSQL (Not only SQL)資料庫