📅  最后修改于: 2023-12-03 15:10:49.503000             🧑  作者: Mango
Cypher是一种图形数据库查询语言,类似于SQL。它是Neo4j图形数据库的主要查询语言,用于检索、修改和管理图形数据库中的数据。
在构造 Cypher 字符串时,我们需要考虑以下几点:
下面是一些示例,帮助你了解如何根据给定条件构造 Cypher 字符串。
我们可以使用以下语法来创建一个新节点:
CREATE (node:NodeType {property1:value1, property2:value2})
其中 NodeType
是节点类型,property1
和 property2
是节点属性。
例如,如果我们想要创建一个新的 Person
节点,有属性 name
和 age
,则可以使用以下 Cypher 字符串:
CREATE (p:Person {name:"John Smith", age:30})
我们可以使用以下语法来创建一个新关系:
MATCH (startNode:StartNodeType), (endNode:EndNodeType)
WHERE startNode.property = value1 AND endNode.property = value2
CREATE (startNode)-[rel:RELATIONSHIP_TYPE]->(endNode)
其中 StartNodeType
和 EndNodeType
是起始和结束节点类型,RELATIONSHIP_TYPE
是关系类型。
例如,如果我们想要创建一个从 person1
到 person2
的新关系,类型为 KNOWS
,则可以使用以下 Cypher 字符串:
MATCH (p1:Person), (p2:Person)
WHERE p1.name = "John Smith" AND p2.name = "Jane Doe"
CREATE (p1)-[:KNOWS]->(p2)
我们可以使用以下语法来更新节点属性:
MATCH (node:NodeType)
WHERE node.property = value
SET node.property = newValue
例如,如果我们想要更新 Person
节点 John Smith
的年龄,我们可以使用以下 Cypher 字符串:
MATCH (p:Person)
WHERE p.name = "John Smith"
SET p.age = 32
我们可以使用以下语法来查询节点和关系:
MATCH (node:NodeType)
WHERE node.property = value
RETURN node
MATCH (startNode:StartNodeType)-[rel:RELATIONSHIP_TYPE]->(endNode:EndNodeType)
WHERE startNode.property1 = value1 AND endNode.property2 = value2
RETURN rel
例如,如果我们想要查询所有 Person
节点,我们可以使用以下 Cypher 字符串:
MATCH (p:Person)
RETURN p
如果我们想要查询所有 Person
节点的 KNOWS
关系,则可以使用以下 Cypher 字符串:
MATCH (p1:Person)-[rel:KNOWS]->(p2:Person)
RETURN rel
我们可以使用以下语法来删除节点和关系:
MATCH (node:NodeType)
WHERE node.property = value
DETACH DELETE node
MATCH (startNode:StartNodeType)-[rel:RELATIONSHIP_TYPE]->(endNode:EndNodeType)
WHERE startNode.property1 = value1 AND endNode.property2 = value2
DELETE rel
例如,如果我们想要删除 Person
节点 John Smith
,则可以使用以下 Cypher 字符串:
MATCH (p:Person)
WHERE p.name = "John Smith"
DETACH DELETE p
如果我们想要删除从 person1
到 person2
的 KNOWS
关系,则可以使用以下 Cypher 字符串:
MATCH (p1:Person)-[rel:KNOWS]->(p2:Person)
WHERE p1.name = "John Smith" AND p2.name = "Jane Doe"
DELETE rel
以上就是构造 Cypher 字符串的一些示例,希望对你有所帮助!