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;
在這個例子中,我們添加了一個注釋來解釋查詢的目的。