0
我很困惑不同的方式來做選擇查詢。我看到的第一種方法是使用直接表格對象和它的select()
函數。但是,如果查詢需要連接操作,您似乎不通過表對象連接,而是使用session.query()
。爲什麼有不同的方法來選擇使用SQLAlchemy?
爲什麼有不同的方式來執行這些查詢,我應該什麼時候使用每種方法?
我很困惑不同的方式來做選擇查詢。我看到的第一種方法是使用直接表格對象和它的select()
函數。但是,如果查詢需要連接操作,您似乎不通過表對象連接,而是使用session.query()
。爲什麼有不同的方法來選擇使用SQLAlchemy?
爲什麼有不同的方式來執行這些查詢,我應該什麼時候使用每種方法?
您正在看到來自兩個不同層的SQLAlchemy的示例。
core layer(select
)通常直接處理表,並且有時對構造查詢更詳細。 orm layer(session.query
)通常處理映射類,併爲聯接和過濾提供了一些便利。
任何一個完全能夠執行復雜的查詢。
核心層可能更適合於較大的查詢,代價是比orm提供的完整映射類的表達結果要少。
通常,在orm層編寫應用程序更容易,也更易於初學者使用,並且只在需要時才放入核心層。我建議閱讀這兩個鏈接的頁面以熟悉兩者,並決定哪些適合您。