Django-mysql数据库条件查询

本文详细介绍了Django中对mysql数据库的查询操作,包括条件查询、F对象和Q对象的使用、聚合函数如Sum、Count、Avg、Max和Min的应用,以及如何进行关联查询。此外,还涵盖了数据更新、删除的方法,强调了查询集的惰性执行和缓存特性,并展示了如何限制查询集的结果数量。
摘要由CSDN通过智能技术生成

条件查询

参数说明
BookInfo:为图书模型表 id主键, btitle书名, bpup_date出版日期, bread阅读量, bcomment评论量
HeroInfo为英雄模型表 hanme英雄名字, hgender性别, hcomment描述, hbook关联图书表的外键

  1. 基本查询

get 查询单一结果,如果不存在会抛出模型类.DoesNotExist异常。
all 查询多个结果。
count 查询结果数量。
2.过滤查询

2. filter 过滤出多个结果
3. exclude 排除掉符合条件剩下的结果
4. get 过滤单一结果
过滤条件的表达语法如下:
	属性名称__比较运算符=# 属性名称和比较运算符间使用两个下划线,所以属性名不能包括多个下划线
5. exact:表示判等。
	查询编号为1的图书
	BookInfo.objects.filter(id__exact=1)
	可简写为:
	BookInfo.objects.filter(id=1)
6. 模糊查询
	contains:是否包含。(说明:如果要包含%无需转义,直接写即可)
	例1:查询书名包含'传'的图书
	BookInfo.objects.filter(btitle__contains='传')
	例2:startswith、endswith:以指定值开头或结尾。
	BookInfo.objects.filter(btitle__endswith='部')
	`以上运算符都区分大小写,在这些运算符前加上i表示不区分大小写,如iexact、icontains、istartswith、iendswith.`
7. 空查询
	isnull:是否为null。
	查询书名不为空的图书
	BookInfo.objects.filter(btitle__isnull=False)
8. 范围查询
	in:是否包含在范围内。
	例:查询编号为1或3或5的图书
	BookInfo.objects.filter(id__in=[1, 3, 5])
9. 比较查询
	gt 大于 (greater then)
	gte 大于等于 (greater then equal)
	lt 小于 (less then)
	lte 小于等于 (less then equal)
	例:查询编号大于3的图书
		BookInfo.objects.filter(id__gt=3)
	不等于的运算符,使用exclude()过滤器。
		BookInfo.objects.exclude(id=3)
10. 日期查询
	year、month、day、week_day、hour、minute、second:对日期时间类型的属性进行运算。
	例:查询1980年发表的图书。
		BookInfo.objects.filter(bpub_date__year=1980)
	例:查询1980年1月1日后发表的图书。
		BookInfo.objects.filter(bpub_date__gt=date(1990, 1, 1))
条件查询

    # 查询id为1的图书
    books = BookInfo.objects.get(id=1)

   # 查询书名包含'传'的图书
    books = BookInfo.objects.filter(btitle__contains='bu')    # QuerySet查询集类型

    # 查询书名不为空的图书
    books = BookInfo.objects.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值