Cypher是一个用于查询图数据库的声明式查询语言,它允许用户以类似于SQL的方式查询图结构数据
例如:
MATCH (n:Person)-[:KNOWS]->(m:Person)
WHERE n.name = 'Alice'
RETURN m.name;
在这个例子中,我们明确指定了节点类型为Person
,关系类型为KNOWS
。
例如:
MATCH (p1:Person)-[:KNOWS]->(p2:Person)
WHERE p1.name = 'Alice'
RETURN p2.name AS friendName;
在这个例子中,我们为节点p1
和p2
以及关系KNOWS
使用了别名,使查询更易于理解。
例如:
MATCH (p:Person)-[:KNOWS]->(q:Person)
WITH p, q
WHERE p.name = 'Alice'
MATCH (p)-[:KNOWS]->(q)
RETURN q.name AS friendName;
在这个例子中,我们首先找到所有与Alice有关系的Person
节点,然后再次匹配这些关系以找到Alice的朋友。
例如:
MATCH (employee:Employee)-[:WORKS_FOR]->(company:Company)
WHERE employee.title = 'Software Engineer'
RETURN company.name AS companyName;
在这个例子中,我们使用了描述性的变量名employee
、company
、WORKS_FOR
和title
,使查询更具可读性。
例如:
-- Find all friends of Alice
MATCH (p:Person)-[:KNOWS]->(q:Person)
WHERE p.name = 'Alice'
RETURN q.name AS friendName;
在这个例子中,我们添加了一个注释来解释查询的目的。