zoukankan      html  css  js  c++  java
  • 单表查询必知必会13条与双下划线查询

    增删改查

    #增
    第一种
    models.Book.objects.create(title='金x梅',price=123.23,publish_date='2019-10-24')
    第二种
    from datetime import date
    ctime = date.today()
    book_obj = models.Book(title='三国演义',price=666.66,publish_date=ctime)
    book_obj.save()
    
    #改
    第一种
    models.Book.objects.filter(pk=1).update(price=999.66)
    第二种
    book_obj = models.Book.objects.filter(pk=1).first()
    book_obj.title = '不符合社会主义核心价值观'
    book_obj.save()
    
    #删除
    models.Book.objects.filter(pk=1).delete()
    
    #查(必知必会13条)
    1.all()  查询所有    QuerySet
    res=models.Book.objects.all() #惰性查询
    print(res)
    for i in res:
        print(i.title)
        
    2.filter()  查询符合条件的记录        QuerySet
    res=models.Book.objects.filter(pk=2)
    print(res)
    
    3.get()   获取某一条数据信息          数据对象本身
    
    4.first()   拿第一个
    res=models.Book.objects.all()
    print(res.first())
    
    5.last()    拿最后一个
    res=models.Book.objects.all()
    print(res.last())
    
    6.exclude  除此之外      QuerySet
    res=models.Book.objects.exclude(pk=3).filter(pk=4).filter(pk=1).filter(pk=4)
    print(res)
    
    7.values  列表套字典		QuerySet
    res=models.Book.objects.values('title')
    for r in res:
        print(r.get('title'))
        
    8.value_list  列表套元祖    QuerySet
    res=models.Book.objects.values_list('title')
    print(res)
    
    9.count()   统计数据的个数
    res=models.Book.objects.count()
    res1 = models.Book.objects.all().count()
    print(res,res1)
    
    10.distinct() 去重
    """去重:数据必须是一模一样的情况下才能去重"""
    res = models.Book.objects.all().distinct()
    res1 = models.Book.objects.values('title','price').distinct()
    print(res1)
    
    11.order_by()  升序排序
    res = models.Book.objects.order_by('price')  # 默认是升序
    # # res1 = models.Book.objects.order_by('-price')  # 加负号就是降序
    print(res)
    
    12.reverse()  对结果反向排序
    res=models.Book.objects.order_by('price').reverse()
    print(res) #前面必须是先结果排序才可以反转
    
    13.exists()  是否有数据
    res=models.Book.object.filter(pk=1).exist()
    print(res)
    

    双下划线查询

    # 查询价格大于200的书籍
    res = models.Book.objects.filter(price__gt=200)
    # 查询价格小于200的书籍
    res = models.Book.objects.filter(price__lt=200)
    print(res)
    # 查询价格大于或者等于200的书籍
    res = models.Book.objects.filter(price__gte=200)
    res1 = models.Book.objects.filter(price__lte=200)
    print(res,res1)
    
    # 价格是200 或者是123.23 或者666.66
    res = models.Book.objects.filter(price__in=[200,123.23,666.66])
    print(res)
    # 价格在200 到700之间的书籍
    res = models.Book.objects.filter(price__range=(200,666.66))  # 顾头不顾尾
    print(res)
    
    # 查询书籍名称中包含p的
    res = models.Book.objects.filter(title__contains='p')  # 区分大小写
    print(res)
    # 忽略大小写
    res = models.Book.objects.filter(title__icontains='p')  # 忽略大小写
    print(res)
    
    # 查询书籍名称是以三开头的书籍
    res = models.Book.objects.filter(title__startswith='三')
    res1 = models.Book.objects.filter(title__endswith='P')
    print(res1)
    
    
    # 查询出版日期是2019年的书籍
    res = models.Book.objects.filter(publish_date__year='2019')
    # 查询出版日期是10月的书籍
    res = models.Book.objects.filter(publish_date__month='10')
    
    
  • 相关阅读:
    Representation Data in OpenCascade BRep
    Render OpenCascade Geometry Surfaces in OpenSceneGraph
    Render OpenCascade Geometry Curves in OpenSceneGraph
    OpenCascade Shape Representation in OpenSceneGraph
    Geometry Surface of OpenCascade BRep
    Geometry Curve of OpenCascade BRep
    Tyvj2017清北冬令营入学测试
    Spfa算法模板
    洛谷1016 旅行家的预算
    洛谷1290 欧几里得的游戏
  • 原文地址:https://www.cnblogs.com/aden668/p/11734141.html
Copyright © 2011-2022 走看看