Nebula Graph查询语言(nGQL)
本文介绍Nebula Graph使用的查询语言nGQL(Nebula Graph Query Language)。
什么是nGQL
nGQL是Nebula Graph使用的的声明式图查询语言,支持灵活高效的图模式,而且nGQL是为开发和运维人员设计的类SQL查询语言,易于学习。
nGQL是一个进行中的项目,会持续发布新特性和优化,因此可能会出现语法和实际操作不一致的问题,如果遇到此类问题,请提交issue通知Nebula Graph团队。Nebula Graph 2.0及更新版本将支持openCypher 9。
nGQL可以做什么
支持图遍历
支持模式匹配
支持聚合
支持修改图
支持访问控制
支持聚合查询
支持索引
支持大部分openCypher 9图查询语法(不支持修改和控制语法)
示例数据 Basketballplayer
用户可以下载Nebula Graph示例数据basketballplayer文件,然后使用Nebula Graph Console,使用选项-f
执行脚本。
占位标识符和占位符值
Nebula Graph查询语言nGQL参照以下标准设计:
ISO/IEC 10646
ISO/IEC 39075
ISO/IEC NP 39075 (Draft)
OpenCypher 9
在模板代码中,任何非关键字、字面值或标点符号的标记都是占位符标识符或占位符值。
nGQL的符号说明如下。
符号 | 含义 |
---|---|
< > | 语法元素的名称。 |
::= | 定义元素的公式。 |
[ ] | 可选元素。 |
{ } | 显示指定元素。 |
| | 所有可选的元素。 |
… | 可以重复多次。 |
例如创建点或边的nGQL语法:
CREATE {TAG | EDGE} {<tag_name> | <edge_type>}(<property_name> <data_type>
[, <property_name> <data_type> ...]);
示例语句:
nebula> CREATE TAG player(name string, age int);