文章目录 一、分组查询概念 二、聚合查询 三、单独聚合查询:aggregate 四、组聚合查询:annotate 五、常用共有字段属性 六、常用字段 七、不常用字段 八、关系字段 九、断开外键关联的ForeignKey使用 十、断开关系的多对多自动创建关系表 十一、断开关联的多对多手动创建关系表 一、分组查询概念 Book: id name price publish_date publish 1. 聚合函数可以单独使用: 将整张表作为一个大的分组,查询字段只能是聚合结果 select max(price), group_concat(name) from book where id < 10; 2. 聚合函数在分组下使用 select publish_id, max(price) as high_price from book group by publish_id having max(price) > 50 二、聚合查询 # 聚合函数的使用场景 -- 单独使用:不分组,只查聚合结果 -- 分组使用:按字段分组,可查分组字段与聚合结果 # 导入聚合函数 from django.db.models import Avg, Max, Min, Count, Sum 三、单独聚合查询:aggregate # 语法: aggregate(别名=聚合函数('字段')) # 规则: 1.可以同时对多个字段进行聚合处理:aggregate(别名1=聚合函数1('字段1'), ..., 别名n=聚合函数n('字段n')) 3.是QuerySet对象方法 2.方法返回值返回值为dict类型 # 案例:所有书中最贵的书的价格 Book.objects.all().aggregate(high_price=Max('price')) 四、组聚合查询:annotate # 语法: values('分组字段').annotate(别名=聚合函数('字段')).filter(聚合字段别名条件).values('取分组字段', '取聚合字段别名') # 规则: 1.values(..