已删除用户
发布于 2023-11-27 / 0 阅读 / 0 评论 / 0 点赞

neo4j图数据库常用语句

neo4j的一些常用语法

最近需要建立关系图谱,因此接触到了Neo4j这种图数据库,以此做出关系的可视化,所以就来学习一下Neo4j的常用语法,Neo4j使用的是Cypher,简称为CQL。

create(stu:Student:Player{id:1,name:'yyk',class:132})

生成一个stu节点,节点标签是Student和Player,节点拥有id,name,class三个属性,属性值中的字符串用' ';

create(节点名称:节点标签{属性名:属性值,属性名:属性值...})

可以create没有属性的节点。

create总是创建节点

match & return & where

match(stu:Student) return (stu)

match(stu:Student{id:1}) return (stu.name)

match(stu:Student) where stu.id=1 return (stu)

match.return不能单独使用。

节点关系

    create(tea:Teacher{id:1,name:'ljy'})

为了方便测试,先创建一个Teacher标签的节点

使用已有节点创建关系:

    match (s:Student),(t:Teacher) create (t)-[r:TEACH{startTime:'2018-06-01'} ]->(s)

创建了一个TEACH关系,开始时间是2018-06-01

    match (s:Student),(t:Teacher) create (t)<-[r:STUDY{startTime:'2018-06-01'} ]-(s)

创建了一个STUDY关系,开始时间是2018-06-01

使用新节点创建关系

   create (t:Teacher{name:'ljy'})-[r:TEACH{startTime:'2018-06-01'} ]->(s:Student{name:'yyk'})

remove

删除节点的属性

match(t:Teacher) remove t.name

set

增加/修改节点属性

match(t:Teacher) set t.name='yyy' return t

为已存在的节点添加标签

match(t:Teacher) set t:Father return t

delete

删除节点/关系

match(t:Teacher) delete t

match(s:Student)-[r]-(t:Teacher) delete r,s,t

delete节点时,如果节点之间还有关系会报错

match(t:Teacher) detach delete t 直接将节点和关系一起删除

order by 排序

match(s:Student) return s order by s.id desc,s.name

union 合并查询结果

match(t:Teacher) return t.name

union

match(s:Student) return s.name

limit 限制返回值的个数,与order by一起用时反正order by后面

match(s:Student) return s order by s.id limit 2

skip 跳过前面几行

match(s:Student) return s order by s.id skip 2

返回第三行级以后的数据

in & null

match(s:Student) where s.id in[1,2] and s.name is not null return s

各关键词顺序

match(s:Student) where s.name='yyk' return s order by s.id skip 1 limit 2

模糊查询

match(s:Student) where s.name=~'.*abc.*'

查询name包含abc的节点

同一个模式中,同一个关系不会出现两次

关系:a-好友-b-好友-c

查询a的好友的好友==查询b的好友

match(a:Student{name:'a'})-[:friends]-(b)-[:friends]-(ff)

或者

match(a:Student{name:'a'})-[:friends]-(b),(b)-[:friends]-(ff) return ff

只返回 c,并不会返回a自己。

match(a:Student{name:'a'})-[:friends]-(b) match(b)-[:friends]-(ff) return ff

通过多个match延伸匹配关系,会返回c和a


评论