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 名稱;