SQLObject官方文件 聯絡與查詢

2021-04-12 16:44:12 字數 1792 閱讀 5578

1/select : 使用的sql語句

1/commit : auto

這個例子放回使用john作為firstname的所有人。乙個使用表示式的複雜例子:

>>> peeps=person.select(

...     and(address.q.personid==person.q.id,

...         address.q.zip.startswith('504')))

>>> list(peeps)

..............

屬性q用於給出訪問特定物件的結構化查詢子句。所有被q所引用的列名將會轉換成sql語句。當然也可以手工生成sql語句:

>>> peeps=person.select("""address.id=person.id and

...                        address.zip like '504%'""",

clausetable=['address'])

注意必須使用clausetable(子表)來指定子表。如果使用q屬性,sqlobject會自動計算出(figure out)所需要使用的擴充套件資訊類。

你也可以使用myclass.sqlrepr來手工指定任何sql語句,而在使用q屬性時是自動指定的。

還可以使用orderby關鍵字建立select語句中的"order by"。orderby獲取乙個字串,表示資料庫的列名,例如person.q.firstname。也可以使用"-colname"來反向排序。或者呼叫myclass.select().reversed()。

也可以使用類例項的_defaultorder屬性指定預設的排序列。如果在這時需要獲得未排序的結果,使用orderby=none。

select的結果是乙個生成器(generator),可以用於後續呼叫。所以sql僅在列出選擇結果時才執行,或者使用list()返回所有結果時。當列舉查詢結果時,每次取回乙個行。這種方法可以在返回結果很大時避免將所有結果放入記憶體。也可以使用.reversed()而不必獲得所有結果實體,取而代之的是自動修改了sql語句來獲得需要的結果。

還可以對查詢結果分片。這將會修改sql語句,所以peeps[:10]將會把"limit 10"加入sql語句中。如果切片無法反映到sql(如peeps[:-10]),則執行查詢之後,對查詢結果列表進行操作。當然,這只是會出現在使用負索引時。

大多數情況會得到多個查詢結果物件。如果不希望這樣,可以加入關鍵字myclass.select(...,distinct=true),對應sql中的select distinct。

你也可以通過count得到查詢結果的個數,比如myclass.select().count()。這將會導致乙個count(*)查詢。這時並不會從資料庫中取得物件,而僅僅是獲得結果數量。

在少數特別注重效率的時候,效率實際上是依賴於批處理的使用方法。提高排序和查詢效率的好辦法是使用索引。且快取比切片更好。

在這種情況下快取意味著響應所有的結果。可以使用list(myclass.select(...))來實現。可以在規定的時間內儲存查詢結果,來讓使用者分頁檢視結果。這樣,第一次查詢會看上去花費更多的時間,但是後面的頁面顯示卻非常快速。

更多關於查詢子表的問題參見"sqlbuilder documentation"。

·selectby方法

除了.select之外的另乙個選擇是.selectby。按照如下工作:

>>> peeps=person.selectby(firstname="john",lastname="doe")

每個關鍵字對應乙個列,且所有的鍵值對都是以and進行邏輯連線。返回結果是selectresult。所以可以切片,計數,排序等等。

kvm官方文件

kvm官方文件 kvm活遷移 使用libvirt庫建立虛擬機器 domain 需要使用xml檔案作為配置檔案,如下是乙個最基本的虛擬機器配置檔案.2014 07 01 20 50 閱讀 233 在使用qemu建立虛擬機器的過程中是無法指定ip位址的,可是在實際應用中,我們是需要虛擬機器擁有ip位址的...

grok 官方文件

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!name code class html grok 解析任意文字並構造它 grok 是當前最好的方式在logstash 解析蹩腳的非結構化日誌資料 到一些結構化的可查詢的。這個工具是完美的對於syslog logs,apache和其他webserv...

PyGame官方文件

幫助內容 help contents 指導索引 reference index 最有用的東西 most useful stuff color display draw event font image key locals mixer mouse rect su ce time music pyga...