查询
修改mysql的日志文件:
让其产生mysql.log,即是mysql的日志文件,里面记录的对mysql数据的操作记录。
1.使用下面命令打开mysql的配置文件,去除68,69行注释,然后保存:
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
2.重启mysql服务,就会产生mysql日志文件:
sudo service mysql restart
3.打开Mysql的日志文件
/var /log/mysql/mysql.log 是mysql日志文件所在位置
使用下面命令可以实时查看mysql的日志文件:
sudo tail -f /var/log/mysql/mysql.log
查询函数
get方法
b=BookInfo.objects.get(id=1)
返回表中满足条件的一条数据,满足条件的有多条数据就需要用filter函数
all方法
b=BookInfo.objects.all()
查询结果是一个查询集,可以遍历
filter方法
BookInfo.objects.filter(btitle__contains=‘传’)
模糊查询,书名中包含“传”的
BookInfo.objetcs.fliter(btitle__startwith=‘大’)
查询书名以大开头的,endwith,以什么结尾的模糊查询。
Bookinfo.objects.filter(btitle__isnull=False)
图书名不为空的查询
BookInfo.objects.fliter(id__gt=3)
查询图书编号大于3的,gt大于,lt小于,gte大于等于
BookInfo.objects.fliter(bpub_date__year==1980)
查询1980年的图书
BookInfo.objects.fliter(bpub__date__gt=date(1980,1,1))
查询1980年1月1日以后的图书
BookInfo.objects.exclude(id=3)
查询id不等于3的图书信息
BookInfo.objects.all().order_by(‘id’)
查询所有图书的结果,按照id大小进行排序
Q对象
作用:对于查询时条件之间的关系。not and or,可以对Q对象进行&|~操作
BookInfo.
F对象
用于类属性之间的比较,以上的都是与值进行比较
使用之前需要先导入
from django.db.models import F
查询阅读量大于评论量的图书
BookInfo.objects.fliter(bread__gt=F(‘bcomment’))
查询阅读量大于两倍评论量的图书信息
BookInfo.objects.fliter(bread__gt=F(‘bcomment’)×2)
聚合函数
对查询结果进行聚合操作
查询所有图书的数目
from django.db.models import Count
BookInfo.objects.all().aggregate(Count(‘id’))
查询所有图书的阅读量的总和
from django.db.models import Sum
BookInfo.objects.aggregate(Sum(‘bread’))