neo4j的一些常用语法

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

首先官方文档为:https://neo4j.com/docs/cypher-manual/current/clauses/。然后开始我的笔记:

csv文件的导入

neo4j支持导入csv文件快捷生成,首先需要将要导入的csv文件放入neo4j文件夹中的import目录下:
在这里插入图片描述
使用的例子如下:第一列为姓名,第二列为手机号,第三列为关系,第四列为关系的另一个对象
在这里插入图片描述

然后在neo4j的命令行中输入如下命令:

load csv from "file:///text.csv" as line
create (:person{name:line[0], phone:line[1]})

运行结果如下:
在这里插入图片描述

可以看到,只是创建了单个的节点,并没有关系,因此需要再进行下一步操作:

load csv from "file:///text.csv" as line
create (:relation{from:line[0], relation:line[2], to:line[3]})

这样就导入关系了,但是节点之间还是没有连线,因此还需要进行下一步操作:

match (n:person), (m:relation), (s:person) where n.name=m.from and s.name=m.to
create (n)-[:人物关系{relation:m.relation}]->(s)
return n.name, m.relation, s.name

运行结果如下:
在这里插入图片描述
在这里插入图片描述
如上即建立了csv文件中的图数据关系

create

创建节点

create(节点名称:节点标签{属性名:属性值,属性名:属性值...})
# 创建简单节点
create (n)
# 创建多个节点
create (n), (m)
# 创建带标签和属性的节点并返回,标签为n,属性为person
create (n:person{name:"张三"}) return n

创建关系

创建关系首先需要找到实体,常用的格式如下:

match (n:person{name:"王一"}), (m:person{name:"肖三")
create (n)-[:兄弟]->(m)

通过以上代码即可创建王一和肖三的兄弟关系

delete

删除孤立节点

对于孤立节点(即不存在关系的节点):

match (n:person{name:"hhh"}) delete n

hhh为孤立节点则可以删除,若要删除的节点存在关系,则上述代码会报错

删除节点有关系存在

处理方法如下,如我要删除“戴七”
在这里插入图片描述
因为“戴七”有一条指向陈六的关系,因此执行如下操作:

match(n:person{name:"戴七"}) detach delete n

运行结果如下:
在这里插入图片描述
删除成功!

删除关系

# 首先删除关系
match(n:person{name:"戴七"})-[r]->(m) delete r

以上代码可以删除“戴七”发出的所有关系

删除所有数据

如果要删除所有数据:

# 删除标签为person的所有数据
match(n:person) detach delete n
# 删除所有数据
match(n) detach delete n

set

与SQL类似:

match(n:person{name:"肖三"}) 
set n.phone=12345678999
return n.name, n.phone

在这里插入图片描述

match

Neo4j中的查询操作使用的是match,查询的格式与SQL类似:

match(n:person{name:"王一"}) return n.name, n.phone
# 或者
match(n:person) where n.name="王一" return n.name, n.phone

查询结果:
在这里插入图片描述

limit和skip

limit n表示显示前n个数据,skip n表示跳过前n个数据

# 只显示前25个数据
match (n:person) return n limit 25
# 不显示前25个数据
match (n:person) return n skip 25
  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花无凋零之时

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值