django 資料庫的查詢集

2022-09-17 07:21:11 字數 962 閱讀 4331

1.curd(增刪改查)

對於資料庫,作為一名開發人員並不會感到陌生,那麼資料庫中的查詢集是怎麼一回事呢?

2.資料庫的查詢集

對查詢集可以再次呼叫過濾器進行過濾,如:bookinfo.objects.filter(bread__gt=30).order_by('bpub_date')

查詢過濾器在這裡的存在就是一種擁有限制條件的篩選器,通過零個、乙個或者多個過濾器來對相對於的資料進行相對應的篩選,從而獲取所需的資料

從原生sql語句來說:從sql的角度講,查詢集與select語句等價,過濾器像where、limit、order by子句

判斷某乙個查詢集中是否有資料:exists():判斷查詢集中是否有資料,如果有則返回true,沒有則返回false。

查詢集的兩大特性:

(1)惰性查詢

當執行如下語句時,並未進行資料庫查詢,只是建立了乙個查詢集只有當執行的遍歷迭代時,才算是查詢了資料庫。如只是建立了乙個查詢集qs = bookinfo.objects.all()

(2)快取

當第一次查詢資料庫時,會把查詢的結果快取下來,之後再次呼叫時,就會直接從快取中呼叫,從而減少查詢資料庫的次數。 

減少查詢資料庫次數的好處?資料庫一旦查詢次數增加,那麼負載就會過高,容易產生問題

可以對查詢集進行切片和取下標等操作,等同於sql中的limit和offset子句。但是不支援負數索引操作,對查詢集進行切片操作後,將會獲得乙個新的查詢集,但是同理,也不會進行資料庫的查詢,僅僅是建立了乙個查詢集罷了。

如果獲取乙個物件,直接使用[0],等同於[0:1].get(),但是如果沒有資料,[0]引發indexerror異常,[0:1].get()如果沒有資料引發doesnotexist異常。

示例:獲取第1、2項,執行檢視:qs = bookinfo.objects.all()[0:2]

django查詢資料庫

特殊過濾 django資料庫查詢時,一般就是 modelname.objects.a ll modelname.objects.filter modelname.objects.get 等等,在過濾時,如果過濾條件假設是其中的某一欄位,比如 id,要求id 5,或者是乙個範圍比如1 id 5,前者可...

django資料庫查詢

特殊過濾 django資料庫查詢時,一般就是 modelname.objects.a ll modelname.objects.filter modelname.objects.get 等等,在過濾時,如果過濾條件假設是其中的某一欄位,比如 id,要求id 5,或者是乙個範圍比如1 id 5,前者可...

Django資料庫查詢

查詢集表示從資料庫中獲取的物件集合,在管理器上呼叫某些過濾器方法會返回查詢集,查詢集可以含有零個 乙個或多個過濾器。過濾器基於所給的引數限制查詢的結果,從sql的角度,查詢集和select語句等價,過濾器像where和limit子句。返回查詢集的過濾器如下 返回單個值的過濾器如下 count 返回當...