大家还记得我们之前介绍过MySQL的执行顺序吗?MySQL数据插入INSERT INTO与条件查询WHERE的基本用法(二)。本节课我们将给大家介绍MySQL中常用的几个关键字SELECT/HAVING/DISTINCT/ORDER BY/LIMIT,接下来我们会按照MySQL中的执行顺序一一进行介绍。
1、SELECT
SELECT是MySQL查询语句中使用最多的关键字,表示从查询语句中取出特定字段或者结果,它有以下几种基本用法。
用法一:取出某个表的所有字段
SELECT * FROM table_name;
注:通常取出某个表的所有字段用星号(*)表示。
例如:取出titanic表中的所有字段
用法二:取出某几个特定字段
SELECT 字段1,字段2,字段3,... FROM table_name;
例如:取出titanic表中的乘客编号,乘客姓名,性别,年龄信息。
用法三:取出指定计算结果
SELECT count(*) from table_name;
例如:计算titanic表所有行记录总数
注:计算某个表的所有行记录总数可以使用count(*)或count(1)表示。
用法四:按照特定分组取出对应结果数据
SELECT 分组字段,聚合函数
FROM table_name
GROUP BY 分组字段;
例如:分组计算乘客生存与死亡的记录数。
2、HAVING
HAING关键词一般与聚合函数结合使用,它的基本语法如下。
SELECT 分组字段,聚合函数 FROM table_name
GROUP BY 分组字段
HAVING 聚合函数(条件);
例如,找出人数大于200的船舱等级。
可以看到人数大于200的船舱等级分别是1和3,人数分别为216和491。
注:由于在MySQL中先执行聚合函数的计算,因此HAVING之后可以直接使用聚合函数计算结果的别名,当然也可以使用聚合函数COUNT(PassengerId)>200表示。
3、DISTINCT
DISTINCT是MySQL中去重常用关键词,通常可以对某个或某几个特定字段进行去重操作。
用法一:对单个字段进行去重
SELECT DISTINCT 字段 FROM table_name;
例如,对titanic表中乘客年龄进行去重。
说明titanic表中共有71个不重复年龄。
用法二:对特定几个字段进行去重
SELECT DISTINCT 字段1,字段2,字段3 FROM table_name;
例如,对titanic表中船舱等级,乘客姓名进行去重。
结果共865行记录,这里是按照船舱等级和乘客姓名两个维度进行去重的,因此去重后的记录数通常会比单一维度去重结果数量更多。
4、ORDER BY
ORDER BY表示对结果进行排序操作,它的基本用法如下。
SELECT 字段1,字段2,字段3,... FROM table_name
ORDER BY 排序字段 ASC/DESC
例如,我们对titanic表中乘客年龄从大到小进行排序,展示出客户姓名与年龄。
在ORDER BY中对字段进行升序排列(从小到大),使用ORDER BY 字段名 ASC ;
如果要对字段进行降序排列(从大到小),则使用ORDER BY 字段名 DESC。
5、LIMIT
表示对结果按指定数量输出,它的基本使用方法如下。
SELECT * FROM table_name
LIMIT 100;
例如,展示titanic表中前100行记录。
通常LIMIT 与ORDER BY 结合使用。
例如,对年龄进行降序排列,同时输出前100行记录。
通过限制之后,输出的结果就只有按年龄降序排列后的前100行记录。