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字段类型
| Neo4j | Java |
|---|---|
| Null | null |
| Boolean | java.lang.Boolean |
| Integer | java.lang.long |
| Float | java.lang.Double |
| String | java.lang.String |
| List | java.util.List |
| Map | java.util.Map<K,V> |
| Node | org.neo4j.driver.v1.types.Node(*) |
| Relationship | org.neo4j.driver.v1.types.Relationship(*) |
| Path | org.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
]中[erzi]是别名,而[儿子]是属性信息 -
正确:Match (n:Person {id :‘儿子’}) Return n

-
正确:Match (n:Person) when n.id=‘儿子’ Return n

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



- 删除关系,增加关系
Match (n:Person{id:‘妈妈’}),(f:Person{id:‘爸爸’})
Merge(n)-[r:夫妻]->(f) delete r
Merge(n)-[:金婚]->(f)
本文介绍了Cypher,一种用于Neo4j图数据库的声明式查询语言,类似于SQL。Cypher设计简洁,适合开发者进行点对点模式查询。文中详细讲解了如何使用Cypher进行节点和关系的创建、查询以及Merge操作。例如,通过`CREATE`语句创建Person节点和关系,使用`MATCH`查询特定节点,以及如何使用`MERGE`来添加或更新关系。同时,还提到了Neo4j中的数据类型,并展示了正确的查询语法。掌握Cypher对于理解和操作Neo4j至关重要。
48

被折叠的 条评论
为什么被折叠?



