本页面介绍了 Spanner Graph 如何支持图表数据库的 ISO 国际标准查询语言。
Spanner Graph 基于以下两个 ISO 标准:
- ISO/IEC 9075-16:2023 - 信息技术 - 数据库语言 SQL 属性图表查询 (SQL/PGQ),第 1 版,2023 年
- ISO/IEC 39075:2024 - 信息技术 - 数据库语言 - GQL,第 1 版,2024 年
下表介绍了 SQL/PGQ、GQL 之间的大致关系,以及 Spanner Graph 如何支持这些标准。
标准 | SQL/PGQ | GQL | Spanner Graph | |
---|---|---|---|---|
查询 | 图表模式匹配功能 | 与 GQL 共享核心图表模式匹配语言 (GPML) 功能。 | 与 SQL/PGQ 共享核心 GPML 功能。 | 这两种标准均受支持。如需了解详情,请参阅 Spanner Graph GQL 模式。 |
查询 | 其他查询语言功能(例如 LIMIT 、ORDER 、汇总) |
基于 SQL。 | 与 SQL 类似,但 GQL 查询功能是线性可组合的图表查询语句。 | 这两种标准均受支持。如需了解详情,请参阅 Spanner Graph GQL 查询语句和 GoogleSQL 中的查询语法。 |
查询 | 图表和表互操作性 | 受支持。 | 不受支持。 | 这两种标准均受支持。如需了解详情,请参阅 GRAPH_TABLE 运算符。 |
类型 | SQL/PGQ 和 GQL 中的数据类型、函数和表达式类似。 | SQL/PGQ 和 GQL 中的数据类型、函数和表达式类似。 | 支持 SQL/PGQ 和 GQL 中的大多数数据类型和表达式。如需了解详情,请参阅 GoogleSQL 中的数据类型。 | |
DML | SQL/PGQ 从 SQL 继承 DML。 | 支持基于图表的 DML。 | 支持基于 SQL 表的 DML。如需了解详情,请参阅 GoogleSQL 数据操纵语言。 | |
架构 | 支持对表使用 CREATE PROPERTY GRAPH 。 |
支持将 CREATE PROPERTY GRAPH 与开放类型和封闭类型搭配使用。 |
支持 SQL/PGQ 方法。如需了解详情,请参阅 CREATE PROPERTY GRAPH 定义。 |
SQL/PGQ 支持
标准 | SQL/PGQ 功能 ID | Spanner Graph |
---|---|---|
查询(图表与表的互操作性) | 功能 G900:GRAPH_TABLE |
支持。如需了解详情,请参阅 GRAPH_TABLE 运算符。 |
架构 | 功能 G924:元素表的显式键子句。这意味着声明符合功能 G920(基于 DDL 的 SQL 属性图表)。 | 支持。如需了解详情,请参阅 CREATE_PROPERTY_GRAPH 语句。 |
架构 | 功能 G925:元素表的显式标签和属性子句。这意味着声明符合功能 G920(基于 DDL 的 SQL 属性图表)。 | 支持。如需了解详情,请参阅 CREATE_PROPERTY_GRAPH 语句。 |
查询 (GPML) | 功能 G001:可重复元素匹配模式。 | 支持。可重复元素匹配模式是默认语义。不支持显式可重复元素匹配模式子句语法。 |
查询 (GPML) | 功能 G008:图表模式 WHERE 子句。这意味着声明符合功能 G000(图表模式)。 |
支持。如需了解详情,请参阅图表模式。 |
查询 (GPML) | 功能 G034:路径串联。 | 支持。如需了解详情,请参阅图表模式。 |
查询 (GPML) | 功能 G040:顶点模式。 | 支持。如需了解详情,请参阅元素模式。 |
查询 (GPML) | 功能 G042:基本全边缘模式。 | 支持。如需了解详情,请参阅元素模式。 |
查询 (GPML) | 功能 G070:标签表达式:标签析取。 | 支持。如需了解详情,请参阅标签表达式。 |
查询 (GPML) | 功能 G073:标签表达式:单个标签名称。 | 支持。如需了解详情,请参阅标签表达式。 |
查询 (GPML) | 功能 G090:属性引用。 | 受支持。 |
GQL 支持
标准 | GQL 功能 ID | Spanner Graph |
---|---|---|
架构 | 功能 GG02:具有封闭图表类型的图表。符合 GG20、GG21、GG22 或 GG23 中的至少一项:
|
支持。您可以从 GG01(具有开放类型的图表)或 GG02 中选择 GQL 支持。 Spanner Graph 不支持与 GQL 完全相同的 CREATE_GRAPH_TYPE 语句。不过,Spanner Graph 支持的 CREATE_PROPERTY_GRAPH 语句与 GG02 密切相关(对 GG20、GG21、GG22 和 GG23 的支持类似)。 |
词汇结构 | “声明符合特定版本的 Unicode® 标准,以及 Unicode 技术标准 10、Unicode 标准附录 15 和 Unicode 标准附录 31 的同步版本。所声明的 Unicode® 标准版本不得低于 13.0.0。” | Spanner Graph GQL 与 GoogleSQL 具有完全相同的词法结构。如需参考 Unicode 转义值,请参阅字符串和字节字面量的转义序列。 |
数据类型 | “声明符合作为属性值类型受到支持的所有值类型集合。此集合至少应包含:
|
支持。如需了解详情,请参阅 Spanner Graph GQL 支持的完整数据类型列表。 |
其他功能
前面几部分列出的功能是标准的最低合规功能。Spanner Graph 支持 ISO 标准中的其他功能。如需了解详情,请参阅 Spanner Graph 架构概览和 GQL 概览。