本页介绍了 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 图 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 号的同步版本。The claimed version of The Unicode® Standard shall not be less than 13.0.0." | Spanner Graph GQL 与 GoogleSQL 共享完全相同的词法结构。如需参考 Unicode 转义值,请参阅字符串和字节字面量的转义序列。 |
数据类型 | “声明符合作为属性值类型受支持的所有值类型的集合。此集至少应包含:
|
支持。如需了解详情,请参阅 Spanner Graph GQL 支持的完整数据类型列表。 |
其他功能
前面部分列出的功能是这些标准的最小合规性功能。Spanner Graph 支持 ISO 标准中的其他功能。如需了解详情,请参阅 Spanner 图架构概览和 GQL 概览。