Django-数据库orm 查询语句

欢迎访问个人博客http://www.jkraise.top

有两种方式,进行 shell 操作

  • 在命令行终端 进行操作, 但是没有不全以及提示
python manage.py shell  # 进行命令行操作

在这里插入图片描述

  • 在Python终端进行操作 提前导入所需的models
from 子应用的models文件  import model类
from bookdata.models import BookInfo, HeroInfo

在这里插入图片描述

查询数据库 (增删改查)

增加 删除 修改的 两种方式

md = model类()
md.属性 = xxx
md.save()

model.objects.create(xxx1='ssss', 字段名='xxxx')

# 修改
model.objects.filter(条件).update(字段名='xxxx')

# 删除
hzhu = HeroInfo.objects.get(id = 18)
hzhu.delete()
sha_li = HeroInfo.objects.filter(id = 19)
sha_li.delete()
  • 基本查询

    模型类.objects.get(条件)
    
    模型类.objects.all()  # 查询多个结果
    
    
  • 条件查询

    模型类.objects.filter(条件)
    # 等于 exact
    模型类.objects.filter(id__exact=1)
    
    # 包含
    模型类.objects.filter(stu_name__contains='龙')
    
    # 以'部'结尾
    模型类.objects.filter(stu_name__endswith='部')
    
    # 不为空
    模型类.objects.filter(stu_name__isnull=False)
    查询编号为135的图书
    BookInfo.objects.filter(id__in = [1,3,5,6])
    查询编号大于3的图书
    BookInfo.objects.filter(id__gt = 3)
    BookInfo.objects.filter(id__lte = 3)
    BookInfo.objects.exclude(id__gt = 3)
    查询1980年发表的图书
    BookInfo.objects.filter(bpub_date__year = 1980)
    
    查询199011日后发表的图书
    BookInfo.objects.filter(bpub_date__gt = '1990-1-1')
    
    
  • 聚合函数

    Avg Count Sum Max Min 
    from django.db.models import Avg, Count, Sum, Max, Min 
    
    查询总阅读量
    BookInfo.objects.aggregate(Sum('bread'))
    查询最大的阅读量
    BookInfo.objects.aggregate(Max('bread'))
    
    BookInfo.objects.aggregate(Count('bread'))
    
    ​```
    - 求数量时 可以直接用count函数
    
    ​```
    
    
    
  • 排序

    Tbstu.objects.all().order_by('bread')
    Tbstu.objects.all().order_by('-bread')  # 倒序
    
  • F Q 对象的查询

    Tbstu.objects.filter(bread__gte = F('bcomment'))
    
    
    
提问
  • get filter区别

    get 只能查询一个数据
    filter 能查询出多个数据,是个列表的结构
    
  • F Q 对象的作用

    F 实现属性之间的比较
    Q 实现mysql and or not
    

最常用的 一对多的 数据查询

在这里插入图片描述

最常用的 多对一的 数据查询

  • 直接使用外键
    在这里插入图片描述

关联过滤查询

关联模型类小写的__属性名__条件运算符 = xxx

books = BookInfo.objects.filter(herinfo__hname='郭靖')
books[0]
  • 查询图书 书的英雄描述包含 ‘靖’
BookInfo.objects.filter(herinfo__hname__contains='靖')
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值