Neo4j查询语言Cypher是一种声明式图查询语言,用于描述图数据库中的模式和查询数据。Cypher的语法类似于SQL,但是它是专门为图数据库设计的。以下是一些基本的Cypher查询语句示例:
CREATE (n:Person {name: "Alice", age: 30})
这条语句创建了一个标签为Person的节点,并为其设置了属性name和age。
MATCH (a:Person {name: "Alice"}), (b:Person {name: "Bob"})
CREATE (a)-[:FRIEND_OF]->(b)
这条语句首先匹配两个节点Alice和Bob,然后在这两个节点之间创建了一条类型为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
这条语句匹配名为Alice的Person节点,并将其age属性更新为31。
MATCH (p:Person {name: "Alice"})
DETACH DELETE p
这条语句匹配名为Alice的Person节点,并删除该节点及其所有关系。
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
这条语句匹配那些有朋友名为Bob的Person节点,并返回其姓名。
WITH ["Alice", "Bob", "Charlie"] AS names
UNWIND names AS name
MATCH (p:Person {name: name})
RETURN p
这条语句将一个名字列表展开,并为每个名字匹配相应的Person节点。
这些示例展示了Cypher的一些基本用法。Cypher非常强大,支持复杂的查询和数据操作,可以根据需要进行组合和扩展。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。