温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Neo4j查询语言Cypher怎么用

发布时间:2025-10-07 18:54:22 来源:亿速云 阅读:97 作者:小樊 栏目:数据库

Neo4j查询语言Cypher是一种声明式图查询语言,用于描述图数据库中的模式和查询数据。Cypher的语法类似于SQL,但是它是专门为图数据库设计的。以下是一些基本的Cypher查询语句示例:

创建节点

CREATE (n:Person {name: "Alice", age: 30})

这条语句创建了一个标签为Person的节点,并为其设置了属性nameage

创建关系

MATCH (a:Person {name: "Alice"}), (b:Person {name: "Bob"})
CREATE (a)-[:FRIEND_OF]->(b)

这条语句首先匹配两个节点AliceBob,然后在这两个节点之间创建了一条类型为FRIEND_OF的关系。

查询节点和关系

MATCH (p:Person)-[:FRIEND_OF]->(friend)
RETURN p.name, friend.name

这条语句匹配所有Person节点及其FRIEND_OF关系,并返回每个Person及其朋友的姓名。

更新节点和关系

MATCH (p:Person {name: "Alice"})
SET p.age = 31

这条语句匹配名为AlicePerson节点,并将其age属性更新为31。

删除节点和关系

MATCH (p:Person {name: "Alice"})
DETACH DELETE p

这条语句匹配名为AlicePerson节点,并删除该节点及其所有关系。

使用参数

MATCH (p:Person {name: $name})
RETURN p.age

这条语句使用参数$name来匹配名为指定名称的Person节点,并返回其年龄。

聚合函数

MATCH (p:Person)
WITH COUNT(p) AS total
RETURN total

这条语句计算Person节点的总数,并返回结果。

条件查询

MATCH (p:Person)
WHERE p.age > 25
RETURN p.name

这条语句匹配年龄大于25岁的Person节点,并返回其姓名。

排序和限制

MATCH (p:Person)
RETURN p.name
ORDER BY p.age DESC
LIMIT 10

这条语句返回年龄最大的前10个Person节点的姓名。

使用子查询

MATCH (p:Person)
WHERE EXISTS {
    MATCH (p)-[:FRIEND_OF]->(friend)
    RETURN friend.name = "Bob"
}
RETURN p.name

这条语句匹配那些有朋友名为BobPerson节点,并返回其姓名。

使用UNWIND

WITH ["Alice", "Bob", "Charlie"] AS names
UNWIND names AS name
MATCH (p:Person {name: name})
RETURN p

这条语句将一个名字列表展开,并为每个名字匹配相应的Person节点。

这些示例展示了Cypher的一些基本用法。Cypher非常强大,支持复杂的查询和数据操作,可以根据需要进行组合和扩展。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI