目录
查询
-
修改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. 查询条件
条件 使用案例 说明 结果 范围查询 in Book.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)>]> 日期查询: year Book.objects.filter(bup_date__year=1980) 查询1980年出版的图书 数据库中没有这一个属性就不做查询 日期查询 Book.objects.filter(bup_date__gt=date(1980,09,01) 查询1980,09,01之后出版的书籍。 只需要把这个转换成为时间类型就可以直接比较大小 模糊查询 contains Book.objects.filter(book_name__contains=‘国’) 查询书籍名中包含国字的书籍信息 QuerySet [<Book: Book object (1)>, <Book: Book object (2)>]> startswith Book.objects.filter(book_name__startswith=‘国’) 查询书籍中以国字开头的书籍的信息 QuerySet []> endswith Book.objects.filter(book_name__endswith=‘三’) 查询书籍中以三字结尾的书籍的信息 QuerySet []> 判等查询 exact Book.objects.filter(book_id__exact=1)(和省略exact的效果是一样的) 查询书籍编号为1的书籍的信息 QuerySet [<Book: Book object (1)>]> 空查询 isnull Book.objects.filter(book_name__isnull=True) 查询书籍名为空的书籍的信息 QuerySet []>