作者回复: 请参考公布的思考题答案
作者回复: 还是要根据实际场景分析
作者回复: 既然分组,自然就会只用到分组字段和组内的计算,如果你还要用到其他字段,应该是你这个查询的需求还没有分析好
作者回复: 多做项目多实践,熟能生巧
作者回复: 非常有必要。原因是前端的代码经常会有改动,为了确保数据的正确性,在数据表设计的时候,加上不能为空的校验是很有好处的。
作者回复: 这样可能会占用较大的篇幅,不够紧凑
作者回复: count(*) 意思是统计表中所有的行 count(1) 意思是统计表的行数 count(列名)意思是统计表中列名字段不为NULL的数量 在MySQL中,count(*)和count(1)没什么区别,count(列名)不会把列名字段值为NULL的统计进去
作者回复: 多做实操,加深理解
作者回复: count(*)与count(1)差别不大,count(1)稍微高效一点。count(字段)时,如果字段是主键,那么count(字段)更快,否则count(*),count(1)更快一些