图数据库:Neo4j使用 Create、Match、Merge

本文介绍了Cypher,一种用于Neo4j图数据库的声明式查询语言,类似于SQL。Cypher设计简洁,适合开发者进行点对点模式查询。文中详细讲解了如何使用Cypher进行节点和关系的创建、查询以及Merge操作。例如,通过`CREATE`语句创建Person节点和关系,使用`MATCH`查询特定节点,以及如何使用`MERGE`来添加或更新关系。同时,还提到了Neo4j中的数据类型,并展示了正确的查询语法。掌握Cypher对于理解和操作Neo4j至关重要。

Cypher语言

“Cypher” 是一个描述性的类Sql的图语言,相当于关系数据库的Sql,可见重要性!其语法正对图的特点而设计,非常方便和灵活。

Cypher设计的目的是一个申明式查询语言,适合于开发者和在数据库上做点对点模式查询的专业操作人员。

Cypher通过一系列不同的方法和建立于确定的实践为表达查询而激发的,许多关键字如like和order by是受SQL的启发,正则表达式匹配实现使用Scala programming language语言。

学号Cypher是学号Neo4j的关键,也是核心所在!

1. Create语法

  • 以下为完全干净的图数据库
    在这里插入图片描述

  • 执行以下Cypher语句之后

Create (erzi:Person{id:'儿子'}),
(baba:Person{id:'爸爸'}),
(yeye:Person{id:'爷爷',name:'张三'}),
(nainai:Person{id:'奶奶'}),
(mama:Person{id:'妈妈'}),
(erzi)-[:fathor]->(baba),
(baba)-[:fathor]->(yeye),
(baba)-[:mothor]->(nainai),
(erzi)-[:mothor]->(mama)

在这里插入图片描述

2. Neo4j字段类型

Neo4jJava
Nullnull
Booleanjava.lang.Boolean
Integerjava.lang.long
Floatjava.lang.Double
Stringjava.lang.String
Listjava.util.List
Mapjava.util.Map<K,V>
Nodeorg.neo4j.driver.v1.types.Node(*)
Relationshiporg.neo4j.driver.v1.types.Relationship(*)
Pathorg.neo4j.driver.v1.types.Path(*)

3. Match语法

  • 查询所有的Person
    Sql:select * from Person
    Cypher: Match (n:Person) return n
    在这里插入图片描述

  • 查询id为[儿子]的节点

    • 错误:Match (n:Person id =‘erzi’) Return n
      ![6.3Match_erzi](6.3Match_erzi.png
      不会报错,但是不会查询出来错误,上述[Create (erzi:Person{id:‘儿子’})]中[erzi]是别名,而[儿子]是属性信息

    • 正确:Match (n:Person {id :‘儿子’}) Return n
      在这里插入图片描述

    • 正确:Match (n:Person) when n.id=‘儿子’ Return n
      在这里插入图片描述

4. Merge关系操作

  1. 增加关系
    Match (n:Person{id:‘妈妈’}),(f:Person{id:‘爸爸’})
    Merge(n)-[:夫妻]->(f)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 删除关系,增加关系
    Match (n:Person{id:‘妈妈’}),(f:Person{id:‘爸爸’})
    Merge(n)-[r:夫妻]->(f) delete r
    Merge(n)-[:金婚]->(f)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

九又四分之三站台Emm

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

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

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

打赏作者

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

抵扣说明:

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

余额充值