一:打开mysql的日志文件
1.进入mysql执行以下命令:set global general_log=on;
2.查看日志文件的位置:show variables like 'general_log_file';
3.打开日志文件:sudo tail -f /usr/local/mysql/data/shuai.log
这样就可以实时看到mysql的操作了(注意:以上的操作针对的是mac电脑)
二:查询函数
通过模型类.objects属性可以调用如下函数,实现对模型类敌营的数据表的查询
1.get函数
2.all函数
3.filter函数
条件格式:模型类属性名__条件名=值
a.判等(条件名可省略) 条件名:exact
b.模糊查询
包含:contains
查询标题包含‘传’
以‘x’结尾:endswith
查询标题以‘部’结尾
以‘x’开头:startswith
查询标题以‘天’开头
c.空查询 isnull
查询标题不为空
d.范围查询 in
查询id=1或id=3或id=5的图书
e.比较查询:gt 大于 lt 小于 gte 等于
查询id大于3的图书
查询id小于5的图书
f.日期查询
查询1980年发表的图书
查询5月份发表的图书
查询1980年1月1日后发表的图书
4.exclude函数
使用方法与filter一样,返回结果相反
5.order__by函数
作用:对查询结果进行排序
查询所有图书信息,按照id升序排序
查询所有图书信息,按照id降序排序
把id大于3的图书按照阅读量降序排序
6.F对象
作用:用于类属性之间的比较
使用前需要先导入:from Django.db.models import F
查询图书阅读量大于评论量图书信息
查询图书阅读量大于2倍评论量图书信息
7.Q对象
作用:用于查询时条件之间的逻辑关系。 not and or,可以对Q对象进行 &|~ 操作。
使用前需要先导入:from django.db.models import Q
查询id大于3且阅读量大于30的图书信息
查询d大于3或者阅读量大于30的图书信息
查询id不等于3图书的信息
三:聚合函数
作用:对查询结果进行聚合操作
sum count avg max min
agreegate:调用词此还书进行聚合;返回值是一个字典
使用前需先导入聚合类:
from django.db.models import Sum,Count,Avg,Max,Min
例:查询所有图书的数目
例:查询所有图书阅读量总和
1.count函数
返回值是一个数字
作用:统计满足条件数据的数目
例:统计所有图书的数目
例:统计id大于3的所有图书的数目
四:查询集
all,filter,exclude,order_by调用这些函数会产生一个查询集
QuerySet类对象可以继续调用上面的所有函数
查询集特征:
1.惰性查询:只有在世纪使用查询集中的数据的时候才会发生对数据库的真正查询
2.缓存:当使用的是同一个查询集时,第一次的时候会发生实际数据库的查询,然后把结果缓存起来,之后再使用这个查询集时,使用的是缓存中的结果
限制查询集:
可以对一个查询集进行取下标或切片操作来限制查询集的结果。
对一个查询集进行切片操作会产生一个新的查询集,下表不允许为负数。
取出查询集第一条数据的两种方式:
五:总结
查询相关函数
get:返回一条且只能有一条数据,返回值是一个对象,参数可以写查询条件。
all:返回模型类对应表的所有数据,返回值是QuerySet。
filter:返回满足条件的数据,返回值是QuerySet,参数可以写查询条件
exclude:返回不满足条件的数据,返回值是QuerySet,参数可以写查询条件
order_by:对查询结果进行排序,返回值是QuerySet,参数中写排序的字段
from Django.models import F,Q,Sum,Count,Avg,Max,Min
F对象:用于类属性之间的比较
Q对象:用于条件之间的逻辑关系
aggregate:进行聚合操作,返回值是一个字典,进行聚合的时候需要先导入聚合类
count:返回结果集中数据的数目,返回值是一个数字
⚠️:对一个QuerySet实例对象,可以继续调用上面的所有函数
网友评论