SQL和MySQL的区别:
SQL是一种语言就像Python,MySQL是一种数据软件叫做数据库就像Pytorch。数据软件还有其他的例如:oracle等,都是通过SQL语句进行查询的,数据库之间有细微差异(以后用到再说)。
MySQL语句的书写顺序为:
select (输出) from (获取数据) where(过滤) group by (分组) having(过滤) order by (排序) limit(限定)
MySQL语句的执行顺序为:
先from,在执行where,group by ,select, having,order by ,limit
使用group by时的聚类函数;
count(*) 和 count(1) 是一样的
count(column) 不统计column中的为NULL的行数目
count(distinct column) 不统计column中重复行数目
sum()
max()
min()
avg()
group_concat() 字符串的结合
where和having的区别:
1. where是一个约束声明,使用Where约束来自数据库的数据,Where是在结果返回之前起作用的,Where中不能使用聚合函数。
2. Having是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作,在Having中可以使用聚合函数。在查询过程中聚合语句(sum,min,max,avg,count)要比having子句优先执行。而where子句在查询过程中执行优先级高于聚合语句。