nGQL入门

avatar
作者
筋斗云
阅读量:0

引言

nGQL(NebulaGraph Query Language)是用于操作 NebulaGraph 的查询语言。它的语法类似于 Cypher,但有自己独特的特性。以下是一些 nGQL 的基本语法和操作示例,以帮助你入门。

基本概念

  • 节点(Vertex):图中的点,具有唯一的ID和标签。
  • 边(Edge):连接两个节点的线,有类型和方向。
  • 属性(Property):节点和边可以有属性,用键值对表示。

基础语法

1.图空间

#1.创建图空间,vid_type选择FIXED_STRING(30) CREATE SPACE test_space(partition_num=15, replica_factor=1, vid_type=FIXED_STRING(30));  #vid_type选择INT64) CREATE SPACE test_space(partition_num=15, replica_factor=1, vid_type=INT64);  #2.查看所有图空间 show spaces  #3.使用图空间 use test_space  #4.删除图空间 drop space test_space  

2.标签

#1.创建标签 create tag person(name string null, gender string null,age int null ,birthday date null)  #2.查看所有标签 show tags  #3.查看标签属性 describe tag person  #4.删除标签 drop tag person  #5.创建索引并重建索引 create tag index i_person_name_age on person(name(50),age) rebuild tag index i_person_name_age   create tag index i_person_name on person(name(50)) rebuild tag index i_person_name  #6.查看索引 show tag indexes  #7.查看索引属性 describe tag index i_person_name  #8.删除索引 drop tag index i_person_name   #9.插入数据 insert vertex person(name, gender, age, birthday) values "1":("zhangsan","男", 25,date("1999-08-01")), "2":("lisi","男",24,date("2000-09-03")), "3":("xiaopang","男",24,date("2000-08-02"))  #10.查询所有数据 match (n:person) return n  #查询单条数据 fetch prop on person "2" yield  person.name,person.gender,person.age,person.birthday  #11.删除节点 delete vertex "1"  #12.更新节点属性 update vertex "1" set person.age=30  

3.边类型

#1.创建边类型 create edge like(likeness double null)  #2.查看边类型 show edges  #3.查看边属性 describe edge like  #4.删除边类型 drop edge like  #5.创建索引并重建索引 create edge index i_like_likeness on like(likeness) rebuild edge index i_like_likeness  #6.查看索引 show edge indexes  #7.查看索引属性 describe edge index i_like_likeness  #8.删除索引 drop edge index i_like_likeness  #9.插入数据 insert edge like(likeness) values "1"->"2":(0.98), "2"->"3":(0.56)  #10.查询所有数据 match (n:person)-[e:like]->(m:person) return n,e,m  #查询单条数据 fetch prop on like "1"->"2" yield like.likeness  #11.删除边 delete edge like "2"->"3"  #12.更新边属性 update edge "1"->"2" of like set  like.likeness=0.88

4.复杂用法

#1.查询 match (n:person) where n.person.age>10 and n.person.name=="zhangsan"  return n  match (a)-[e:like]->(b) where e.likeness > 0.80 return a,e,b  match (n:person) where n.person.name in["zhangsan","lisi"] return n   #2.使用聚合函数 match (n:person) return AVG(n.person.age) match (n:person) return n.person.gender,COUNT(*)  #3.排序 match (n:person) return n.person.name, n.person.age as age order by age ASC  match (a)-[e:like]->(b) return a, e.likeness as l,b order by l DESC      

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!