GqlQuery 类
GqlQuery类是一种类似于 SQL 的查询语言,适用于查询 App Engine数据库。
基本信息
- 中文名
GqlQuery 类
- 用途
查询 App Engine 数据库
- 相似
SQL
- 构造函数
GqlQuery
- 类别
查询语言
概述
有关 GQL 语法和功能的完整讨论,请参阅 GQL 参考。
GqlQuery 构造构造函数采用以 SELECT * FROM model-name 开头的完整 GQL 语句作为参数。WHERE 子句中的值可以是字符串或数字字母,或可以使用值的参数绑定。绑定参数最初可以使用位置或关键字参数绑定到构造函数。
query =GqlQuery("SELECT * FROM Song WHERE composer = 'Lennon, John'")
query =GqlQuery("SELECT * FROM Song WHERE composer = :1","Lennon, John")
query =GqlQuery("SELECT * FROM Song WHERE composer = :composer",composer="Lennon, John")为了方便起见,Model 和 Expando 类有种可返回 GqlQuery 实例的 gql() 方法。这种方法在不使用 SELECT * FROM model-name 的情况下采用 GQL 查询字符串,这是暗含的。
query =Song.gql("WHERE composer = 'Lennon, John'")与使用 Query 类一样,应用程序通过调用 fetch() 方法或通过将 GqlQuery 对象视为可迭代来执行查询和访问结果。有关详细信息,请参阅 Query 文档。
Query 和 GqlQuery 访问结果的方式之间有一个不同之处:如果 GQL 查询包括一个 LIMIT 子句或一个 OFFSET 子句,将采用等效 fetch() 方法检索结果,即使迭代器接口用于访问结果也是如此。当某个 GqlQuery(其 GQL 包含 LIMIT 或 OFFSET)被作为可迭代使用时,将对数据库进行一次调用以抓取所有结果,然后迭代器从内存返回每个结果。
forsong inq:
printsong.title另请参阅 Query,一种使用对象和方法而不是 GQL 来准备查询的 Query 类。
注意:支持数据库查询的基于索引的数据结构和算法不支持某些种类的查询。有关详细信息,请参阅查询和索引:对查询的限制。
构造函数
GqlQuery 类的构造函数如下定义:
class GqlQuery(query_string, *args, **kwds)使用 App Engine 查询语言 GQL 的 Query 对象。
参数:
query_string以 SELECT * FROM model-name 开头的完整 GQL 语句。*args位置参数绑定。**kwds关键字参数绑定。
实例方法
GqlQuery 实例有以下方法:
bind(*args, **kwds)重新绑定参数以进行查询。新查询将在重新绑定参数后第一次访问结果时执行。