图查询的最快路径

Neo4j Cypher 查询语言

Cypher 是一种被全球开发者所使用的声明式图查询语言。由 Neo4j 创建,Cypher 为属性图提供了富有表现力且高效的查询能力。

什么是 Cypher?

可视化、直观且强大的图
数据查询语言

Cypher 易于学习的模式构建方式使其非常适合开发者、数据科学家以及查询语言经验有限的用户。用户只需简单地表达需要检索的数据,底层的引擎就会完成任务,从而消除了对技术实现细节知识的依赖。

使用 Cypher 匹配模式和关系的直观方式

Neo4j Cypher 查询语言的优势

属性图数据模型在各种应用领域中日益普及,并在多个产品和项目中得到广泛采用。对于处理属性图而言,Cypher 是最成熟且最直观易学的查询语言。

易于学习

Cypher 语句非常简洁。它将节点之间的引用表示为直观的模式,易于理解。Cypher 学习曲线平缓,有助于用户快速编写富有表现力、直观的查询,从而更快地获得结果。请在我们的 GraphAcademy 中查找 Cypher 学习路径

可视化与逻辑性

使用 ASCII 艺术风格的语法匹配图中的节点和关系模式。这些模式直接映射到图表或白板上绘制的领域模型。因此,模型、数据库和查询语言之间不存在阻抗失配问题。

安全、可靠且数据丰富

Cypher 非常适合应用程序开发和数据分析。它减少了对数据库的重复调用,并通过简洁的单条查询表达特定的用例数据需求。Neo4j 驱动程序使用响应式编程方法,可节省云计算资源并管理 背压 (back-pressure)。

开放且灵活

Cypher 是一种基于 openCypher 计划的开放式数据查询语言。它可以通过用户定义的函数和过程进行扩展。Neo4j 实现的 Cypher 解析器、规划器和运行时均已开源。

在我们的云端图数据库 AuraDB Free 中体验 Cypher。试用 Cypher

告别复杂的连接 (Join)

Cypher 是一种针对图优化的查询语言,能够理解并利用数据连接。它能够跟踪任意方向的连接,以揭示此前未知的关系和集群。编写 Cypher 查询比编写复杂的 SQL 连接要容易得多。将此 Cypher 查询与其对应的 SQL 进行比较。

Cypher
MATCH (p:Product)-[:CATEGORY]->(l:ProductCategory)-[:PARENT*0..]->(:ProductCategory {name:"Dairy Products"})
RETURN p.name
  
                
SQL
SELECT p.ProductName
FROM Product AS p
JOIN ProductCategory pc ON (p.CategoryID = pc.CategoryID AND pc.CategoryName = "Dairy Products")

JOIN ProductCategory pc1 ON (p.CategoryID = pc1.CategoryID)
JOIN ProductCategory pc2 ON (pc1.ParentID = pc2.CategoryID AND pc2.CategoryName = "Dairy Products")

JOIN ProductCategory pc3 ON (p.CategoryID = pc3.CategoryID)
JOIN ProductCategory pc4 ON (pc3.ParentID = pc4.CategoryID)
JOIN ProductCategory pc5 ON (pc4.ParentID = pc5.CategoryID AND pc5.CategoryName = "Dairy Products");