一:打開(kāi)mysql的日志文件
1.進(jìn)入mysql執(zhí)行以下命令:set global general_log=on;
2.查看日志文件的位置:show variables like 'general_log_file';
3.打開(kāi)日志文件:sudo tail -f /usr/local/mysql/data/shuai.log
這樣就可以實(shí)時(shí)看到mysql的操作了(注意:以上的操作針對(duì)的是mac電腦)
二:查詢函數(shù)
通過(guò)模型類.objects屬性可以調(diào)用如下函數(shù)柒竞,實(shí)現(xiàn)對(duì)模型類敵營(yíng)的數(shù)據(jù)表的查詢
1.get函數(shù)
2.all函數(shù)
3.filter函數(shù)
條件格式:模型類屬性名__條件名=值
a.判等(條件名可省略) 條件名:exact
b.模糊查詢
包含:contains
查詢標(biāo)題包含‘傳’
以‘x’結(jié)尾:endswith
查詢標(biāo)題以‘部’結(jié)尾
以‘x’開(kāi)頭:startswith
查詢標(biāo)題以‘天’開(kāi)頭
c.空查詢 isnull
查詢標(biāo)題不為空
d.范圍查詢 in
查詢id=1或id=3或id=5的圖書(shū)
e.比較查詢:gt 大于 ? ?lt 小于 ? ?gte 等于
查詢id大于3的圖書(shū)
查詢id小于5的圖書(shū)
f.日期查詢
查詢1980年發(fā)表的圖書(shū)
查詢5月份發(fā)表的圖書(shū)
查詢1980年1月1日后發(fā)表的圖書(shū)
4.exclude函數(shù)
使用方法與filter一樣,返回結(jié)果相反
5.order__by函數(shù)
作用:對(duì)查詢結(jié)果進(jìn)行排序
查詢所有圖書(shū)信息熙掺,按照id升序排序
查詢所有圖書(shū)信息寡具,按照id降序排序
把id大于3的圖書(shū)按照閱讀量降序排序
6.F對(duì)象
作用:用于類屬性之間的比較
使用前需要先導(dǎo)入:from Django.db.models import F
查詢圖書(shū)閱讀量大于評(píng)論量圖書(shū)信息
查詢圖書(shū)閱讀量大于2倍評(píng)論量圖書(shū)信息
7.Q對(duì)象
作用:用于查詢時(shí)條件之間的邏輯關(guān)系慌随。 not and or,可以對(duì)Q對(duì)象進(jìn)行 &|~ 操作。
使用前需要先導(dǎo)入:from django.db.models import Q
查詢id大于3且閱讀量大于30的圖書(shū)信息
查詢d大于3或者閱讀量大于30的圖書(shū)信息
查詢id不等于3圖書(shū)的信息
三:聚合函數(shù)
作用:對(duì)查詢結(jié)果進(jìn)行聚合操作
sum count avg max min
agreegate:調(diào)用詞此還書(shū)進(jìn)行聚合黍聂;返回值是一個(gè)字典
使用前需先導(dǎo)入聚合類:
from django.db.models import Sum,Count,Avg,Max,Min
例:查詢所有圖書(shū)的數(shù)目
例:查詢所有圖書(shū)閱讀量總和
1.count函數(shù)
返回值是一個(gè)數(shù)字
作用:統(tǒng)計(jì)滿足條件數(shù)據(jù)的數(shù)目
例:統(tǒng)計(jì)所有圖書(shū)的數(shù)目
例:統(tǒng)計(jì)id大于3的所有圖書(shū)的數(shù)目
四:查詢集
all譬圣,filter瓮恭,exclude,order_by調(diào)用這些函數(shù)會(huì)產(chǎn)生一個(gè)查詢集
QuerySet類對(duì)象可以繼續(xù)調(diào)用上面的所有函數(shù)
查詢集特征:
1.惰性查詢:只有在世紀(jì)使用查詢集中的數(shù)據(jù)的時(shí)候才會(huì)發(fā)生對(duì)數(shù)據(jù)庫(kù)的真正查詢
2.緩存:當(dāng)使用的是同一個(gè)查詢集時(shí)厘熟,第一次的時(shí)候會(huì)發(fā)生實(shí)際數(shù)據(jù)庫(kù)的查詢屯蹦,然后把結(jié)果緩存起來(lái)维哈,之后再使用這個(gè)查詢集時(shí),使用的是緩存中的結(jié)果
限制查詢集:
可以對(duì)一個(gè)查詢集進(jìn)行取下標(biāo)或切片操作來(lái)限制查詢集的結(jié)果登澜。
對(duì)一個(gè)查詢集進(jìn)行切片操作會(huì)產(chǎn)生一個(gè)新的查詢集阔挠,下表不允許為負(fù)數(shù)。
取出查詢集第一條數(shù)據(jù)的兩種方式:
五:總結(jié)
查詢相關(guān)函數(shù)
get:返回一條且只能有一條數(shù)據(jù)脑蠕,返回值是一個(gè)對(duì)象购撼,參數(shù)可以寫(xiě)查詢條件。
all:返回模型類對(duì)應(yīng)表的所有數(shù)據(jù)谴仙,返回值是QuerySet迂求。
filter:返回滿足條件的數(shù)據(jù),返回值是QuerySet晃跺,參數(shù)可以寫(xiě)查詢條件
exclude:返回不滿足條件的數(shù)據(jù)揩局,返回值是QuerySet,參數(shù)可以寫(xiě)查詢條件
order_by:對(duì)查詢結(jié)果進(jìn)行排序哼审,返回值是QuerySet谐腰,參數(shù)中寫(xiě)排序的字段
from Django.models import F,Q,Sum,Count,Avg,Max,Min
F對(duì)象:用于類屬性之間的比較
Q對(duì)象:用于條件之間的邏輯關(guān)系
aggregate:進(jìn)行聚合操作,返回值是一個(gè)字典涩盾,進(jìn)行聚合的時(shí)候需要先導(dǎo)入聚合類
count:返回結(jié)果集中數(shù)據(jù)的數(shù)目十气,返回值是一個(gè)數(shù)字
??:對(duì)一個(gè)QuerySet實(shí)例對(duì)象,可以繼續(xù)調(diào)用上面的所有函數(shù)