标签:ddr any star tle none bubuko group display 翻译
基于对象查询(子查询) 一对多 正向查询,按字段 Book-------------------->Publish <--------------------- 反向查询,按表名小写_set:book_set obj=Book.objects.fliter(title="python").first() obj.publish 多对多 正向查询,按字段 Book-------------------->Author <--------------------- 查询,按表名小写_set:book_set obj=Book.objects.fliter(title="python").first() obj.author.all() # [obj,....] 一对一: 正向查询,按字段 Book-------------------->Author <--------------------- 查询,按表名小写
基于queryset查询 正向查询,按字段 A-------------------->B <--------------------- 查询,按表名小写
聚合和分组 book id title publish 1 php 苹果 2 python 苹果 3 go 橘子 sql: select publish,Count(*) from Book group by publish #查询每一个出版社出版的书籍个数 # ret=Publish.objects.all().annotate(c=Count("book")).values("name","c") # print(ret) # 查询每一个作者出版的书籍的平均价格 ret=Author.objects.all().annotate(price_avg=Avg("book__price")).values("name","price_avg") print(ret) #查询每一本书籍名称以及作者的个数 ret=Book.objects.all().annotate(c=Count("author")).values("title","c") print(ret) # 查询价格大于200的每一本书籍名称以及作者的个数 ret = Book.objects.filter(price__gt=200).annotate(c=Count("author")).values("title", "c") print(ret)
F查询与Q查询 # F from django.db.models import F,Q ret=Book.objects.filter(comment_num__gt=F("poll_num")) print(ret) ret=Book.objects.filter(comment_num__gt=F("read_num")*10) print(ret) Book.objects.all().update(price=F("price")+100) # Q ret=Book.objects.filter(title__startswith="java",price__gt=200) print(ret) ret = Book.objects.filter(Q(title__startswith="java")|~Q(price__lt=200)) print(ret)
class Book(models.Model): title = models.CharField(max_length=32) publishDate = models.DateField() price = models.DecimalField(max_digits=5, decimal_places=2) # 999.99 # 创建一对多的关联字段 : 是与某个书籍对象关联的出版社对象(注意,只有一个对象) publish=models.ForeignKey("Publish") # 创建的多对多的关系 authors=models.ManyToManyField("Author") class Publish(models.Model): nid = models.AutoField(primary_key=True) name=models.CharField( max_length=32) email=models.EmailField() class Author(models.Model): name=models.CharField(max_length=32) age=models.IntegerField() class AuthorDetail(models.Model): addr=models.CharField(max_length=32) email=models.EmailField() author=models.OneToOneField("Author")
基于图书管理系统的表关系与数据,进行如下查询 要求:1-5查询分别基于对象查询,双下划线查询,以及找到对应翻译的sql语句 1、查询人民出版社出版过的价格大于100的书籍的作者的email 2、查询alex出版过的所有书籍的名称以及书籍的出版社的名称 3、查询2011年出版社过的所有书籍的作者名字以及出版社名称 4、查询住在沙河并且email以123开头的作者写过的所有书籍名称以及书籍的出版社名称 5、查询年龄大于20岁的作者在哪些出版社出版过书籍 6、查询每一个出版社的名称以及出版过的书籍个数 7、查询每一个作者的名字以及出版过的所有书籍的最高价格 8、查询每一本书的名字,对应出版社名称以及作者的个数
标签:ddr any star tle none bubuko group display 翻译
原文地址:https://www.cnblogs.com/shangdelu/p/8987882.html