Cypher(CQL)是 Neo4j 数据库中使用的查询语言,专门用于图数据库。下面是 Cypher 查询语言的基本语法和一些常见的查询操作:

基本节点和关系的创建:
// 创建一个节点
CREATE (node:Label {property: 'value'})

// 创建两个节点和它们之间的关系
CREATE (a:Person {name: 'Alice'})-[:KNOWS]->(b:Person {name: 'Bob'})

查询节点和关系:
// 查询所有节点和它们的属性
MATCH (n) RETURN n

// 查询特定类型的节点
MATCH (p:Person) RETURN p

// 查询两个节点之间的关系
MATCH (a:Person {name: 'Alice'})-[:KNOWS]->(b:Person {name: 'Bob'}) RETURN a, b

节点和关系的更新:
// 更新节点属性
MATCH (p:Person {name: 'Alice'}) SET p.age = 30

// 删除节点
MATCH (p:Person {name: 'Alice'}) DETACH DELETE p

模式匹配和过滤:
// 查找所有与 'Alice' 有关系的节点
MATCH (a:Person {name: 'Alice'})-[*]-(related) RETURN related

// 查找 'Alice' 的朋友的名字
MATCH (a:Person {name: 'Alice'})-[:KNOWS]->(friend) RETURN friend.name

条件和过滤:
// 使用 WHERE 子句进行条件过滤
MATCH (p:Person) WHERE p.age > 25 RETURN p

// 使用正则表达式进行过滤
MATCH (p:Person) WHERE p.name =~ 'A.*' RETURN p

聚合和排序:
// 计算节点总数
MATCH (n) RETURN COUNT(n)

// 查找年龄最大的人
MATCH (p:Person) RETURN p ORDER BY p.age DESC LIMIT 1

这些只是 Cypher 查询语言的基本示例。Cypher 非常灵活,能够进行复杂的图形查询和分析。你可以根据具体的需求使用 Cypher 查询语言构建适当的查询来检索和操作图数据库中的数据。查阅 Neo4j 官方文档以获取更详细的 Cypher 查询语言信息和示例。


转载请注明出处:http://www.zyzy.cn/article/detail/9279/Neo4j