📜  Neo4j CQL写子句(1)

📅  最后修改于: 2023-12-03 15:17:50.864000             🧑  作者: Mango

Neo4j CQL 谓词和子句

什么是 Neo4j CQL?

Neo4j Cypher Query Language(CQL)是一种基于图形数据库的查询语言,用于查询和管理图形数据库。Neo4j CQL 包含一些用于描述和操作节点和关系的子句和谓词。

子句
CREATE

CREATE 子句用于创建节点和关系。下面是一个创建一个节点的示例:

CREATE (n:Person {name: 'Alice', age: 26})

这创建了具有标签 Person 和属性 nameage 的节点。

MATCH

MATCH 子句用于找到图形数据库中的节点和关系。下面是一个示例:

MATCH (n:Person)-[:FRIEND]-(m:Person)
WHERE n.name = 'Alice'
RETURN m

这找到了名为 Alice 的节点,并返回她的所有朋友(假设朋友之间有一条 FRIEND 关系)。

MERGE

MERGE 子句用于创建或查找节点和关系。下面是一个示例:

MERGE (n:Person {name: 'Bob'})
ON CREATE SET n.age = 30
ON MATCH SET n.age = 31

这创建了一个具有 name 属性为 Bob 的节点,如果该节点已经存在,它将更新该节点的 age 属性。

DELETE

DELETE 子句用于删除节点和关系。下面是一个示例:

MATCH (n:Person)
WHERE n.age > 30
DELETE n

这将删除所有年龄大于 30 的人。

谓词
WHERE

WHERE 谓词用于过滤查询结果。下面是一个示例:

MATCH (n:Person)-[:FRIEND]-(m:Person)
WHERE n.name = 'Alice' AND m.age > 25
RETURN m

这找到了名为 Alice 的节点的所有朋友,并返回他们中所有年龄大于 25 岁的人。

ORDER BY

ORDER BY 谓词用于将查询结果按特定属性排序。下面是一个示例:

MATCH (n:Person)-[:FRIEND]-(m:Person)
WHERE n.name = 'Alice'
RETURN m
ORDER BY m.age DESC

这找到了名为 Alice 的节点的所有朋友,并按年龄从大到小排序返回。

LIMIT

LIMIT 谓词用于限制查询结果的数量。下面是一个示例:

MATCH (n:Person)-[:FRIEND]-(m:Person)
WHERE n.name = 'Alice'
RETURN m
LIMIT 5

这找到了名为 Alice 的节点的前 5 个朋友,并返回他们。

结论

这里只是介绍了 Neo4j CQL 中的一些基本子句和谓词。有关更多详细信息,请参阅 Neo4j CQL 文档