mysql数据库

mysql查询注意事项

2021-07-12  本文已影响0人  Geroge1226

1、说明

使用mysql数据库最多的是进行业务的查询写入。尤其是查询,我们会遇到各类场景特殊性。需要对数据按照各种方式筛选,以下是注意事项部分记录:

2、select查询注意事项集

常见的基础查询语句格式如下:

select 属性列表
       from 表名或试图列表
       [where 条件表达式1]
       [group by 属性名1 [having 条件表达式2]]
       [order by 属性名2 [ASC | DESC]]

其中,group by 子句,按照属性名1 字段进行分组,再满足HAVING后条件表达式才能够输出数据。order by字句, 默认按ASC 升序排序,DESC为倒序(值由大到小)。

2.1 like 模糊匹配两种形式

(1)使用通配符“ % ” 匹配一个或者多个字符。

(2)单个匹配"_" 字符。

2.2、is [not] null 区别于 = null

is null 表示值为null的记录,筛选不能替换成“ = null ”,否则数据无法获取到。显示数据记录为空。

2.3、or关键词使用注意

(1)当 orand同时使用,先执行and连接前后语句再执行or语句,与or所在位置无关。
如下两条语句执行结果一致:

select * from myexp_activity_page where  page_name like "树亮%" or id>'14' and page_remarks = '测试';
select * from myexp_activity_page where   id>'14' and page_remarks = '测试' or page_name like "树亮%";

两次运行结果如下:


image.png
2.4、order by中值为null的排序问题

order by 按照某属性名排序时,属性名对应值有null情况。

2.5 、group by使用问题

(1)简单实用group by 只会显示每个分组的一条记录。

select id,status from myexp_activity_page group by status;  

(2)group_cancat (属性名)group by 同时使用。展示每个分组指定的属性字段所有值,多个按逗号隔开。

select * , GROUP_CONCAT(id) from myexp_activity_page group by status;
image.png

(3)集合函数的意义:执行顺序,先按照属性名1 进行分组,然后再对每一组数据进行统计。

select 属性名1 ,count(属性名1)   from group  by 属性名1;

常见与group by 配合使用集合函数count(),max(),min(),svg(),sum()

(4)group by 与 having 条件表达式使用
先执行group by 分组,在筛选分组满足having条件表达式 的数据输出。

select * ,count(1) from sys_admin_information group by info_type having count(info_type) > 16;

(5)多属性分组注意点
group by 字段1,字段2 执行顺序先按照字段1分组,如果遇到字段1相同情况,在按照字段2进行分组,依次类推。

2.6、havingwhere 区别

相同点:都是用来限制显示信息条件。
不同点:where作用与表或试图,having作用与分组后的记录,用于筛选满足条件的分组。

2.7、limit筛选事项

(1)limit num:不指定初始位置,表示查询num条记录数
(2)limit start,num:指定初始问题,从指定位置开始查找后面num条记录

2.8、max()集合函数

不仅可以作用于数字类似的属性,也可以作用于字符属性,作用字符类型上是作用与Asii码的排序。
group by使用时候,依然遵循简单的group by 分组原则,会取第一条记录,而max()会将众多分组最大属性展示,不要以为会整条记录会取max最大的那一条,max只会取作用字段属性上最大的值。
例如原表数据如下:info_type = menu 的最大menu_order 是16

image.png

查询语句

select *,max(menu_order) from sys_admin_information group by info_type;

查询结果:menu分组取的记录依然是第一条menu_order =1的记录,而max作用的字段属性取的是最大值16。

image.png
2.9、union与union all区别

union把两个查询结果合并在一起,去除重复的记录。
union all 只将两个查询结果合并在一起,不做去重处理。

上一篇下一篇

猜你喜欢

热点阅读