SELECT
用於數據的選擇
語法:
SELECT 列 FROM 表; #從表中選擇某些列,也可以是*,代表全部列
DISTINCT
當某些列包含重復值的時候,DISTINCT用於過濾掉重復值,使重復值只顯示一次。
語法:
SELECT DISTINCT 列 FROM 表;
WHERE
對選取的數據進行約束
語法:
SELECT 列 FROM 表 WHERE 列 運算符 值;
運算符:
= 等於
<>/!= 不等於
> 大於
< 小於
>= 大於等於
<= 小於等於
BETWEEN AND 在某個范圍內
LIKE 搜索某種模式
AND & OR 運算符
AND 和 OR 運算符用於基於一個以上的條件對記錄進行過濾。
語法:
SELECT * FROM Persons WHERE 列1='A' AND 列2='B'
SELECT * FROM Persons WHERE (列1='A' AND 列2='B') OR (列1='c' AND 列2='d') # 組合使用
ORDER BY 子句
ORDER BY 語句用於對結果集進行排序,默認升序。
語法:
SELECT * FROM 表 ORDER BY 列 # 選擇所有列,並且按照某一類進行進行排序,默認升序
SELECT * FROM 表 ORDER BY 列1,;列2 # 列1相同時,按照列2排序
DESC
默認情況下,mysql的排序是升序,DESC關鍵字可以指定降序
語法:
SELECT * FROM 表 ORDER BY 列 DESC # 選擇所有列,並且按照某一類進行進行排序,指定升序
LIMIT
當表中數據量很大時,LIMIT規定要返回的記錄的數目
語法:
SELECT * FROM 表 LIMIT n # 限制返回n條數據
LIKE 操作符
通過使用通配符來進行模糊匹配
MySql常用通配符有:
% 代表一個或者多個字符
_ 代表一個字符
語法:
SELECT * FROM 表 WHERE 列 LIKE pattern # 其中的pattern一般是通配符
樣例:
# 假設我們的表中有city字段,包含南京北京,我們想要返回這兩座城市數據
SELECT * FROM 表 WHERE city LIKE '%京' # 通配符的意思是以任意開頭,而以京結尾。
IN
IN 操作符允許我們在 WHERE 子句中規定多個值。
語法:
SELECT * FROM 表 WHERE 列 IN (值1,值2,...) # 選出某列中包含值1,值2的所有數據
樣例:
# 假設我們的表中有city字段,包含南京北京,我們想要返回這兩座城市數據
SELECT * FROM 表 WHERE city IN ('南京', '北京')
BETWEEN AND
操作符 BETWEEN ... AND 會選取介於兩個值之間的數據范圍。這些值可以是數值、文本或者日期。
語法:
SELECT * FROM 表 WHERE 列 BETWEEN value1 AND value2
NOT
取反
AS
為選取的列指定別名
語法:
SELECT 列 AS 列別名 FROM 表
GROUP BY
數據分組
語法:
SELECT * FROM 表 GROUP BY 列
HAVING 子句
在 SQL 中增加 HAVING 子句原因是,WHERE 關鍵字無法與合計函數一起使用。
語法:
SELECT 列, aggregate_function(列)
FROM 表
WHERE 列 operator 值
GROUP BY 列
HAVING aggregate_function(列) operator 值