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 值