GQL 符合性
上次更新:2024 年 10 月 24 日
Neo4j 版本: 5.25
GQL 是用于图数据库的新ISO国际标准查询语言。
GQL 采用了 Cypher®的大部分查询构建语义,例如遵循MATCH/RETURN
格式。因此,Cypher 现在容纳了大多数强制性 GQL 功能及其大部分可选功能(由ISO/IEC 39075:2024(en) - 信息技术 - 数据库语言 - GQL 标准定义)。因此,用户应该只期望在 Cypher 和 GQL 中编写查询时存在最小的差异。例如,以下查询在两种语言中都是有效的
MATCH (a:Actor)-[:ACTED_IN]->(m:Movie)
WHERE a.name = 'Tom Hanks'
RETURN m.title
Cypher 支持大多数强制性 GQL 功能。有关完整列表,请参见支持的强制性 GQL 功能。但是,目前 Cypher 中还有一些强制性 GQL 功能尚未实现,Neo4j 正在积极努力实施这些功能。这些功能列在页面当前不支持的强制性 GQL 功能中。
Neo4j 还致力于提高其对可选 GQL 功能的支持。这些功能列在页面支持的可选 GQL 功能中。
某些在 Cypher 中尚未实现的可选 GQL 功能已经具有类似的 Cypher 等效项。这些功能列在页面可选 GQL 功能和类似的 Cypher中。
此外,Cypher 包含不属于 GQL 的其他功能,并且目前不存在它们的 GQL 替代方案。这些功能列在页面其他 Cypher 功能中。
关于最小 GQL 符合性的说明
根据 GQL 标准子条款 24.2,最小符合性,明确声明了 Cypher 对以下强制性 GQL 功能的支持
-
具有开放图类型的图 (功能 GG01)。
-
Cypher 使用的 Unicode 标准版本取决于正在运行的 JVM 版本。Neo4j 5 添加了对 JavaSE 17 和 Unicode 标准版本 13 的支持。Neo4j 5.14 添加了对 JavaSE 21 和 Unicode 标准版本 15 的支持。有关更多信息,请参见解析 → 在 Cypher 中使用 Unicode。
-
Cypher 支持以下强制性 GQL 属性类型:
BOOLEAN
(BOOL
)、FLOAT
[1]、INTEGER
(SIGNED INTEGER
或INT
)[2] 和STRING
(VARCHAR
)。Cypher 还支持以下可选 GQL 属性类型:
DATE
、DURATION
、LIST<INNER_TYPE NOT NULL>
(ARRAY<INNER_TYPE NOT NULL>
、INNER_TYPE LIST
或INNER_TYPE ARRAY
)[3]、LOCAL DATETIME
(TIMESTAMP WITHOUT TIME ZONE
)、LOCAL TIME
(TIME WITHOUT TIME ZONE
)、POINT
、ZONED DATETIME
(TIME WITH TIME ZONE
) 和ZONED TIME
(TIMESTAMP WITH TIME ZONE
)。有关更多信息,请参见值和类型 → 属性类型。