聚合查询和原生数据库查询操作

文章介绍了Django框架在数据库查询中的聚合方法,包括对单个字段的聚合查询,如Sum、Avg、Count、Max和Min等聚合函数的使用,以及如何通过annotate进行分组聚合来获取每个查询集的总计、平均值或总和。同时,文章提到了原生SQL操作的使用,如用raw()方法执行自定义SQL语句,并强调了防止SQL注入的重要性。
摘要由CSDN通过智能技术生成

1, 聚合查询是指对一个数据表 中的一个数据表中的一个字段进行部分或全部进行统计查询

聚合函数(Sum,Avg,Count,Max,Min)

语法 Mymodel.objects.aggretate(结果变量名=聚合函数("列"))

返回结果为:结果变量名和值组成的字典

{”结果变量名“:“值”}

from django.db.models import *

2,分组聚合是指通过计算查询结果中每一个对象关联对象的集合,从而得出总计值(也可以是平均值或总和),即为查询集的每一项生成聚合

语法  :QuerySet.annotate(结果变量名=聚合函数('列'))

返回值

-QuerySet

3,原生数据库操作

查询:使用MyModels.objects.raw()

语法:使用MyModels.objects.raw(sql语句,拼接参数)

返回值:RawQuerySet集合对象【只支持基础操作,比如循环】

books = models.book.objects.raw("select * from book_store_book")

for book in books:

        print(book)

正确- 》 s2 = Book.objects.raw("select * from bookstore_book where id = %s"],['1 or 1 = 1'])

防止SQL注入

实现完全跨国模型类操作数据库-查询、更新,修改

1。导入cursor所有包

from django.db import connection

2.用创建cursor类的构造函数创建cursor对象,在使用cursor对象,为保证再出现异常时能释放cursor资源,通常使用with语句进行创建操作

from django.db import connection

with connection.cursor() as cur:

        cur.execute('执行SQL语句','拼接参数')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值