常用的 MySQL 查詢語句示例
MySQL 是常見的關係型數據庫管理系統,廣泛應用於數據存儲、查詢和管理。為了更高效地操作數據庫,掌握常用的查詢語句非常重要。本文將介紹一些基本的 MySQL 查詢語句,涵蓋了常用的查詢、更新、刪除操作,以及如何使用聚合函數和連接查詢。
1. 基本查詢
查詢所有記錄
SELECT * FROM table_name;
- 説明:
*表示選擇表中的所有列。此語句將返回表中所有的記錄。
查詢特定列
SELECT column1, column2 FROM table_name;
- 説明:通過指定列名,查詢指定的列數據。你可以選擇表中的任意一列或多列。
帶條件查詢
SELECT * FROM table_name WHERE condition;
- 説明:
WHERE子句用於設置查詢的條件。只有滿足條件的記錄才會被返回。
去重查詢
SELECT DISTINCT column FROM table_name;
- 説明:
DISTINCT用於去除重複的記錄,只返回唯一的值。
2. 排序和限制
排序
SELECT * FROM table_name ORDER BY column ASC/DESC;
- 説明:
ORDER BY用於排序。ASC表示升序(默認),DESC表示降序。
限制記錄數
SELECT * FROM table_name LIMIT count;
- 説明:
LIMIT用於限制返回的記錄條數。count是返回記錄的數量。
3. 條件查詢
等於
SELECT * FROM table_name WHERE column = value;
- 説明:
=用於查詢某列等於某個特定值的記錄。
不等於
SELECT * FROM table_name WHERE column != value;
或
SELECT * FROM table_name WHERE column <> value;
- 説明:
!=或<>用於查詢某列不等於某個特定值的記錄。
大於、小於、大於等於、小於等於
SELECT * FROM table_name WHERE column > value;
SELECT * FROM table_name WHERE column < value;
SELECT * FROM table_name WHERE column >= value;
SELECT * FROM table_name WHERE column <= value;
- 説明:分別用於查詢大於、小於、大於等於、小於等於某個值的記錄。
區間查詢
SELECT * FROM table_name WHERE column BETWEEN value1 AND value2;
- 説明:
BETWEEN用於查詢某列值在指定範圍內的記錄,包括邊界值。
模糊查詢
SELECT * FROM table_name WHERE column LIKE 'pattern';
- 説明:
LIKE用於模糊匹配,%表示任意數量的字符,_表示單個字符。例如,LIKE 'a%'查找以a開頭的記錄。
空值判斷
SELECT * FROM table_name WHERE column IS NULL;
SELECT * FROM table_name WHERE column IS NOT NULL;
- 説明:
IS NULL判斷某列是否為NULL,IS NOT NULL判斷某列是否不為NULL。
多條件查詢
SELECT * FROM table_name WHERE column1 = value1 AND column2 = value2;
SELECT * FROM table_name WHERE column1 = value1 OR column2 = value2;
- 説明:使用
AND和OR進行多條件查詢,AND表示所有條件都滿足時返回記錄,OR表示只需滿足一個條件即可。
4. 聚合函數
平均值
SELECT AVG(column) FROM table_name;
- 説明:
AVG()用於計算指定列的平均值。
總和
SELECT SUM(column) FROM table_name;
- 説明:
SUM()用於計算指定列的總和。
最大值
SELECT MAX(column) FROM table_name;
- 説明:
MAX()用於查詢指定列的最大值。
最小值
SELECT MIN(column) FROM table_name;
- 説明:
MIN()用於查詢指定列的最小值。
計數
SELECT COUNT(column) FROM table_name;
- 説明:
COUNT()用於統計指定列中非NULL的記錄數。
5. 分組和聚合
分組查詢
SELECT column1, SUM(column2) FROM table_name GROUP BY column1;
- 説明:
GROUP BY用於對數據進行分組,SUM()用於計算每個分組的總和。可以用COUNT(),AVG()等函數進行統計。
過濾分組
SELECT column1, SUM(column2) FROM table_name GROUP BY column1 HAVING SUM(column2) > value;
- 説明:
HAVING用於過濾分組後的結果,與WHERE類似,但WHERE不能用於過濾聚合結果,HAVING用於對聚合函數的結果進行過濾。
6. 連接查詢
內連接(INNER JOIN)
SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id;
- 説明:
INNER JOIN返回兩個表中匹配的記錄,如果沒有匹配,則不返回。
左連接(LEFT JOIN)
SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.id;
- 説明:
LEFT JOIN返回左表的所有記錄,即使右表沒有匹配的記錄,右表的字段值會返回NULL。
右連接(RIGHT JOIN)
SELECT * FROM table1 RIGHT JOIN table2 ON table1.id = table2.id;
- 説明:
RIGHT JOIN返回右表的所有記錄,即使左表沒有匹配的記錄,左表的字段值會返回NULL。
7. 子查詢
子查詢作為列
SELECT column, (SELECT MAX(column2) FROM table2) FROM table1;
- 説明:子查詢作為列,可以從另一個表獲取相關數據。
子查詢作為條件
SELECT * FROM table1 WHERE column IN (SELECT column2 FROM table2);
- 説明:子查詢作為條件用於從一個表的結果中篩選出符合條件的記錄。
8. 更新和刪除
更新記錄
UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;
- 説明:
UPDATE用於修改現有記錄,可以通過WHERE指定要更新的記錄。
刪除記錄
DELETE FROM table_name WHERE condition;
- 説明:
DELETE用於刪除符合條件的記錄,注意不要遺漏WHERE,否則會刪除所有記錄。
總結
掌握常用的 MySQL 查詢語句是開發和維護數據庫的基礎。無論是進行數據查詢、更新還是刪除,合理使用 SQL 語法可以有效提高操作效率。通過上述基礎查詢語句、聚合函數、連接查詢和子查詢的組合應用,能夠滿足大多數數據處理需求。對於複雜查詢,可以靈活使用這些語句並根據實際需求進行優化。