查询

目录

查询


查询
  • 修改mysql日志文件
    修改mysql的日志文件,就是让其产生mysql.log文件,让其对每一次对数据库的操作都能够看的清楚

      1. 使用下面的命令打开mysql的配置文件,删除其68,69行。
          /etc/mysql/mysql.conf.d/mysql.cnf 这是数据库配置文件的路径。可以用多种方式进行打开。这里需要管理员的最高权限。直接sudo进入就行
      2. 删除保存了以后直接从新启动服务就行
          service mysqld restart 表示重启mysql服务
      3. 打开mysql.log日志文件 
          路径:/var/log/mysql/mysql.log是mysql.log文件所在的路径
          打开方式: tail -f /var/log/mysql/mysql.log
      这所有的操作都是在超级管理员的模式下进行的(sudo)
    

    截图:
    这是打开后的文件,直接注释掉68,69行就行,然后保存文件
    在这里插入图片描述
    保存文件后重新启动服务文件,可以看到mysql.log文件已将展示出来了。
    在这里插入图片描述
    打开日志文件 sudo tail -f /var/log/mysql/mysql.log
    在这里插入图片描述
    空格一直都是在最后一行。
    在客户端连接上MySQL数据库后就会显示如图的
    每做一部操作都可以看到mysql日志文件中有具体的显示操作

    例如在shell中实例化模型对象
    在这里插入图片描述
    在日志中就会出现响应的sql语句
    在这里插入图片描述

返回目录


  • 查询函数
    通过模型类.objects.(函数名)就可以直接通过模型类操作数据库中数据表的查询

    函数名功能返回值说明
    get返回满足条件的数据(有且只有一个)返回值是一个模型对象参数中写的是查询条件:1. 如果查询到多条数据则抛出MultipleObjectsRetuened2.查询不到数据,则抛出异常DoesNotExiist
    all返回模型类对应表格中所有的对象返回值是该对象的集合查询集
    filter返回满足条件的数据返回值也是QuerySet类型参数写查询条件
    exclude返回不满足条件的数据返回值也是QuerySet参数写查询条件
    order_by对查询的结果进行排序返回值是QuerySet参数中写根据那些字段进行排序

    1. get
    get函数只能返回一个符合条件的对象,查不到或者多个一样的都会报错
    (查询数据库中没有的)
    在这里插入图片描述
    返回的结果:(没有找到这个符合条件的)
    在这里插入图片描述
    2. all
    返回的是满足该条件的集合(QuerySet)我们叫做查询集,可以进行遍历。可以看到的是里面有6个Book模型对象
    在这里插入图片描述
    3.filter
    filter里面写的也是查询条件,返回的是符合条件的对象集,与get的区别就在于它能返回多个对象,而get只能返回一个符合条件的对象。
    使用:
    Book.objects.filter(查询条件)

    4.exclude
    返回的是不符合条件的对象集。使用方法和上面的一样
    使用:
    Book.objects.exclude(book_id=2) 查询书籍不包含书籍编号为2的书籍的信息

    5.order_by
    对返回的对象集进行排序
    使用:
    Book.objects.all().order_by(‘id’) 将查询的结果通过id进行从小到大的排列
    Book.objects.all().order_by(’-id’) 将查询的结果通过id进行从大到小的排列

返回目录


  • 查询条件

    1. 使用方法:
    使用之前还是需要导入模块
    from bookimfor.models import Book
    属性名称__(双下划线)加上查询条件
    Book.objects.filter(book_id__in=[1,2,3]) 表示查询书籍编号在1,2,3这些范围的书籍

    2. 查询条件

    条件使用案例说明结果
    范围查询 inBook.objects.filter(book_id__in=[1,2,3,4,5])查询书籍编号在1,2,3,4,5之间的书籍QuerySet [<Book: Book object (1)>, <Book: Book object (2)>, <Book: Book object (3)>, <Book: Book object (4)>]>
    gt(great than)Book.objects.filter(book_id__gt=3)查询书籍编号大于3的书籍的信息QuerySet [<Book: Book object (4)>, <Book: Book object (5)>, <Book: Book object (6)>]>
    lt(less than)Book.objects.filter(book_id__lt=3)查询书籍编号小于3的书籍信息QuerySet [<Book: Book object (1)>, <Book: Book object (2)>]>
    gte(great than equal)Book.objects.filter(book_id__gte=3)查询书籍大于等于3的书籍信息QuerySet [<Book: Book object (3)>, <Book: Book object (4)>, <Book: Book object (5)>, <Book: Book object (6)>]>
    lte(less than equal)Book.objects.filter(book_id__lte=3)查询书籍小于等于3的书籍的信息QuerySet [<Book: Book object (1)>, <Book: Book object (2)>, <Book: Book object (3)>]>
    日期查询: yearBook.objects.filter(bup_date__year=1980)查询1980年出版的图书数据库中没有这一个属性就不做查询
    日期查询Book.objects.filter(bup_date__gt=date(1980,09,01)查询1980,09,01之后出版的书籍。只需要把这个转换成为时间类型就可以直接比较大小
    模糊查询 containsBook.objects.filter(book_name__contains=‘国’)查询书籍名中包含国字的书籍信息QuerySet [<Book: Book object (1)>, <Book: Book object (2)>]>
    startswithBook.objects.filter(book_name__startswith=‘国’)查询书籍中以国字开头的书籍的信息QuerySet []>
    endswithBook.objects.filter(book_name__endswith=‘三’)查询书籍中以三字结尾的书籍的信息QuerySet []>
    判等查询 exactBook.objects.filter(book_id__exact=1)(和省略exact的效果是一样的)查询书籍编号为1的书籍的信息QuerySet [<Book: Book object (1)>]>
    空查询 isnullBook.objects.filter(book_name__isnull=True)查询书籍名为空的书籍的信息QuerySet []>

返回目录


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值