美文网首页
MySQL基础(三)- 关于查询操作的详细知识点(上)

MySQL基础(三)- 关于查询操作的详细知识点(上)

作者: 做个合格的大厂程序员 | 来源:发表于2020-05-26 08:42 被阅读0次

* 表示查询所有

SELECT * FROM 表名;

*表示通配符,也就是说所有的数据。

查询特定的字段

SELECT 字段名1,字段名2 FROM 表名;

如果我们需要查询特定的字段,就可以在SELECT后面接上对应的字段名称,用逗号隔开即可。

设置别名

用AS关键字设置:

SELECT username AS name FROM cms_user;

查询范围

如果想查询到特定范围之内的数据,我们可以用IN关键字来指定特定范围内的数据值,例如:

SELECT id,username FROM cms_user WHERE id IN (1,3,5);

这里指的是查询在cms_user表中的id和username,并且id的范围是1,3,5。这种特殊字段的对应数据。

模糊查询

如果我们在查询姓名中不知道用户的特定的名字,只知道其中特定的几个名字的话我们可以用LIKE关键字。

SELECT username FROM cms_user WHERE username LIKE "%张%";

如果只知道有几位字符的话,我们可以用_代替,例如:

-- 查询4位字符的数据
SELECT username FROM cms_user WHERE username LIKE "____";

分组查询

如果想要将查询的数据分成每个group来展示,就必须用到group by 来分组显示。

SELECT id,username,proId FROM cms_user GROUP BY proId;

注意,如果用GROUP BY查询出来的只会显示GROUP中的第一个元素。

如果想显示group中的所有成员信息,我们可以用GROUP_CONCAT来包裹字段名称。用于显示所有信息。

SELECT id,GROUP_CONCAT(username),proId FROM cms_user GROUP BY proId;

对比图:

不用GROUP_CONCAT查询:


不用GROUP_CONCAT

用GROUP_CONCAT查询:


用GROUP_CONCAT查询

我们可以明显的看到在username这行中,显示的信息变多了,这就是GROUP_CONCAT的作用。

查询聚合函数

  • COUNT():显示数量
  • MAX(): 显示最大值
  • MIN(): 显示最小值
  • AVG(): 显示平均数
  • SUM(): 显示总和
SELECT id,sex, GROUP_CONCAT(username),
COUNT(*) AS totalusers,
MAX(age) AS max_age,
MIN(age) AS min_age,
AVG(age) AS avg_age,
SUM(age) AS sum_age
FROM cms_user 
GROUP BY(sex)
WITH ROLLUP;

查询结果如下:


函数的使用

对查询结果进行二次筛选

用HAVING函数

 --查询组中人数大于2的
 
SELECT 
id,
GROUP_CONCAT(username),
proId,COUNT(*) 
FROM cms_user 
GROUP BY proId 
HAVING COUNT(*)>2;

排序

ORDER BY

最简单的排序,升序/降序排列

--id升序
SELECT * FROM cms_user ORDER BY id ASC;

--id降序
SELECT * FROM cms_user ORDER BY id DESC;

限制查询结果显示条数

LIMIT

--显示前3条记录
SELECT * FROM cms_user LIMIT 3;

如果要用偏移量,也就是分页,那么就得输入偏移量的值

--查询从第0条之后的10条数据
SELECT * FROM cms_user LIMIT 0,10;

--查询从第10条之后的10条数据
SELECT * FROM cms_user LIMIT 10,10;

相关文章

网友评论

      本文标题:MySQL基础(三)- 关于查询操作的详细知识点(上)

      本文链接:https://www.haomeiwen.com/subject/nptmahtx.html