where条件更像是这一条命令中的限制条件,如果不带where条件的时候,相当于针对全表所有字段进行操作
这个里面第一条好处理,就是字段的数据,查哪个写那个就行;
第二条:非必要时刻不是必须的,就好像第一条命令行方式,没有别名,(反过来说,很多时候,可能复杂查询等操作需要用到它);
这个说是聚合,实际上就是对单列的数据进行简单处理,最大最小值啥的,这个如果记录员工系统还是可以的。
having可以对聚合函数的结果进行筛选。
比如第四条指令:查询年龄小于45 的,根据工作地址分组,获取员工数量大于等于3的 地址项;(最后只是查询哪个地址居住的员工数大于等于3)
1、每个select命令行查询的结果,就是一个临时的表格,我们的查询条件最后就是其中的一条属性。我们需要显示的是哪些字段的内容,就放在select之后,这个位置的参数是会在新表中打印出来的。像workaddress 和count(*)直接就显示出来了。成为临时表的字段。
而having? (自我感觉可以理解成,我们需要查询带有什么属性的数据,就相当于是对查询结果的临时表格进行一次特殊筛选)
//个人理解:
分组也可以这样理解:分组查询中,最大的限制条件就是组的字段名(group by【分组字段】);或者最大查找范围是分组字段名的范围。
其他被查找的内容和函数计算都是这次查询结果的属性。(被聚合函数计算的内容更像是我们在临时表中给数据信息增加一条我们需要的信息)。
而having在这个基础上,给我们添加了一个可以进一步筛选的方式(一般就是使用这个新添加的聚合函数信息,作为条件进行筛选)。
注:可以给新的聚合函数条件设置个别名,这样就不会直接打印count(*) 这样的了。方便使用
自己从b站Mysql视频学习记录。原先用Note记录,格式有不同,后面修改。