nGQL入门

引言

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

#13.增加标签的属性
ALTER TAG person ADD (email string);

#14.删除标签的属性
ALTER TAG person DROP (email);



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

#4.取顶点id
MATCH (n:person) RETURN id(n)
match (n:person)-[e:like]->(m:person) return id(n),e,id(m)






  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值