SELECT [欄位串列]
FROM [資料表名稱]
WHERE [條件式]
GROUP BY [群組欄位](組合起來群組化)
HAVING [群組條件](群組化後取出符合條件)
ORDER BY [欄位](ASC小至大/DESC大至小)
LIMIT [第幾筆],[顯示幾筆](從第幾筆資料開始顯示,並顯示N筆資料。)
特定欄位:顯示表格特定欄位。
SELECT 欄位名稱 FROM 表名;
所有資料:顯示表格內所有資料(沒有值將顯示NULL)。
SELECT * FROM 表格名稱;
多個欄位:表格中取得多個欄位。
SELECT 欄位1,欄位2,欄位3 FROM 表格名稱;
排除重複:表格中取得排除重複之後的資料。(多欄位排除會變成:欄位or欄位皆為相同則排除)
SELECT DISTINCT 欄位名稱 FROM 表格名稱;
欄位綽號:(顯示別的名稱)
SELECT DISTINCT 欄位名稱 AS 欄位綽號 FROM 表格名稱;
陳述句順序(詳細功能看下方):
1.FROM 尋找表格
2.WHERE 尋找欄位
3.GROUP BY 欄位群組化
4.HAVING 欄位篩選(指定值或範圍
5.ORDER BY 欄位排列
6.SELECT 欄位顯示
SELECT使用(類似Switch):
CASE END分歧(根據條件取的不一樣的值):例如年齡範圍,薪資範圍
SELECT 欄位1, 欄位2,
CASE WHEN 條件1 THEN '顯示的值'
WHEN 條件2 THEN '顯示的值'
WHEN 條件3 THEN '顯示的值'
ELSE '其他範圍顯示的值'
END AS '欄位3'
FROM 表單名;
FROM使用:
WHERE使用(寫在WHERE後方的方法):
搜尋符合條件的資料:
SELECT 欄位1,欄位2,欄位3 FROM 表格名稱 WHERE 欄位名稱 條件式 值;
條件式:(多筆相同則更動多筆)
SELECT 欄位1,欄位2,欄位3 FROM 表格名稱 WHERE 欄位名稱 條件式 值 = 值;
= 等於
< 小於 > 大於
<=小於等於 >=大於等於
<>不等於
IS NULL;是空值
IS NOT NULL;不是空值
多重條件式:
SELECT 欄位1,欄位2,欄位3 FROM 表格名稱 WHERE 欄位名稱 條件式 值 = 值 AND 條件式 值 = 值;
AND 查詢多欄位的資料 A和B(欄位 AND 欄位)
OR 查詢多欄位的資料 A或B
NOT 查詢多欄位的資料 非A的資料
IN 可查多筆資料(與這些值有一致)
WHERE 欄位名稱 IN (值1,值2,值3)
NOT IN 與這些值有任何一個不一致時顯示出來
(優先順序為 NOT > AND > OR)
運算子:
SELECT 欄位1,欄位2,欄位3 FROM 表格名稱 WHERE 欄位名稱 條件式 值 + 值 = 值;
+ 加
- 減
* 乘
/ 除
模糊條件搜尋LIKE:
SELECT 欄位1,欄位2,欄位3 FROM 表格名稱 WHERE 欄位名稱 LIKE '%值%';
% 代表0個字元以上任何字串 '___子'可搜尋出四個字結尾為子'__子_'
_ 可代表任何一個字元 '%字串'結尾一致'字串%'開頭一致'%字串%'字串內一致
LIKE 一致的資料
NOT LIKE 不一致的資料
平均函數:先查詢表格欄位平均值再查詢符合的值。
SELECT 欄位1, 欄位2 FROM 表格名稱 WHERE 欄位名稱 > (SELECT AVG(欄位名稱) FROM 表格名稱);
查詢指定範圍 BETWEEN :
SELECT 欄位1,欄位2,欄位3 FROM 表格名稱 WHERE 欄位名稱 BETWEEN 直1 AND 直2;)
字串比較大小(字母排序越後面越大,中文字元編碼順序)
ORDER使用:
SELECT 欄位1,欄位2,欄位3 FROM 表格名稱 ORDER BY 欄位2 DESC;
資料表的排列,升幂和降幂。
ORDER BY 排序鍵 DESC 降幂(大到小)
ORDER BY 排序鍵 ASC 升幂(小到大)
如果排序鍵相同則依照排序鍵二排序:(第一排序鍵相同時就排第二排續鍵)
ORDER 排序鍵1 DESC 排序鍵2 ASC
起始位置LIMIT:
SELECT 欄位1,欄位2,欄位3 FROM 表格名稱 ORDER BY 欄位2 DESC LIMIT 0,3;
起始位置,顯示列數 (LIMIT 0,3 0開始顯示3筆資料)
GROUP BY使用:計算欄位一同名平均。
SELECT 欄位1,AVG(欄位2) FROM 表單名 GROUP BY 欄位1;
HAVING匯總函數:符合條件
SELECT 欄位1,AVG(欄位2) FROM 表單名 GROUP BY 欄位1 HAVING AVG(欄位2) >= 300000;
欄位操作:
計算平均值或最大值:可用在SELECT後方欄位
SELECT AVG(欄位名稱) FROM 表名;
SUM(欄位名稱):總和
AVG(欄位名稱):平均值
SELECT SUM(欄位), AVG(欄位), FROM 表格名稱;
MAX(欄位名稱):最大值
MIN(欄位名稱):最小值
計算欄位資料數:顯示單一值
COUNT(欄位名稱):排除NULL欄位列數
SELECT COUNT(欄位) FROM Emploree;
找出符合的資料後排除NULL的人數:
SELECT COUNT(欄位) FROM 表格名稱 WHERE 欄位 ='值';
COUNT(*):包含NULL欄位列數
SELECT COUNT(*) FROM Emploree;
四捨五入:
ROUND(欄位名,第幾位)四捨五入到小數點第幾位
SELECT ROUND(AVG(欄位), 1) FROM 表格名稱;
無條件捨去:
TRUNCATE(欄位值,第幾位)無條件捨去到小數點第幾位
SELECT TRUNCATE(AVG(欄位), 1) FROM 表格名稱;
前補零:
SELECT LPAD(id,7,0) AS `id` FROM `Account`;
後補零:
SELECT RPAD(id,6,0) AS `id` FROM `Account`;
進階:
兩個表格合併查詢:
過時用法(使用WHERE):合併兩表格再查詢欄位
SELECT 表格1.欄位2, 表格2.欄位2 FROM 表格1, 表格2 WHERE 表格1.欄位1 = 表格2.欄位1;
內部合併INNER JOIN:只顯示擁有的值。
尋找 表格1.欄位 表格2.欄位 表格2.欄位 FROM 表格1 INNER JOIN 表格1.欄位 ON 表格2.欄位
SELECT subjectName.id, Account.articleTitle,Account.nec_name FROM ACCOUNT INNER JOIN ACCOUNT ON subjectName.id = Account.accountId;
外部合併OUTER JOIN:顯示內容以單側為基準,另一側則顯示空值。
尋找 表格1.欄位 表格2.欄位 表格2.欄位 FROM 表格1 LEFT OUTER JOIN 表格1.欄位 ON 表格2.欄位
SELECT subjectName.id, Account.articleTitle,Account.nec_name FROM ACCOUNT LEFT OUTER JOIN ACCOUNT.accountId ON subjectName.id = Account.accountId;
子查詢:主查詢內使用的查詢就是子查詢。
主查詢 (--------------子查詢--------------)
SELECT 欄位1, 欄位2 FROM 表格名稱 WHERE 欄位名稱 > (SELECT AVG(欄位名稱) FROM 表格名稱);
WHERE 欄位名 IN (子查詢)
IN (子查詢) 與子查詢資料部分一致。(多筆資料)
NOT IN(子查詢) 與子查詢資料都不一致。(多筆資料)
視圖View:視圖中的資料會隨著原表的變化自動更新,並且是唯獨狀態,無法寫入。
建立視圖:
CREATE VIEW 視圖名稱 AS SELECT 命令的SQL陳述式;
範例:CREATE VIEW ViewName AS SELECT * FROM 表格名稱 WHERE 欄位1 = '值';
SHOW TABLE;顯示是否建立完成。
刪除試圖:
DROP VIEW 試圖名稱;
查找相同名稱並加總欄位:
select 名稱,sum(加總欄位) as 自訂加總名稱 from 表格名稱 group by 名稱;