Cypher
常见问题
常规
Cypher 是开源的吗?
与 Neo4j 一样,Cypher 也是开源的。该 openCypher 项目提供了所有必要的规范。它提供了一种直观的方式来处理属性图,并且是 ISO 制定的图查询语言 (GQL) 标准的最佳切入点。
我为什么要学习 Cypher?
Cypher 是应用最广泛、完全指定的属性图数据库声明式开源查询语言。Cypher 由 Neo4j 创建,已被 10 多种不同的数据库产品以及全球数十万开发者和数据科学家所采用。
如何对图数据库运行 Cypher?
Cypher 通过 Java、JavaScript、Python、.Net、Go 的语言驱动程序以及 PHP、Perl、Ruby、Rust 等的社区驱动程序以事务方式使用。Neo4j 还提供了一个 HTTP API,可将 Cypher 语句发送到服务器。此外,Neo4j 浏览器(一种可视化工具)运行 Cypher 语句,而 cypher-shell 在命令行上工作。许多其他工具,如客户端应用程序或服务器端后端,都依赖于 Cypher 与图数据库进行交互。
SPARQL 和 Cypher 查询语言之间有什么区别?
SPARQL 是用于访问资源描述框架 (RDF) 中数据的查询语言。Cypher 是用于表示属性图中数据的对应语言。了解更多 关于它们之间区别的信息。
SQL 与 Cypher 之间的一些关键区别是什么?
Cypher 是一种基于图模式语法(ASCII 艺术)的图声明式查询语言。它专注于可读性、可组合性和高效的语法。SQL 是一种自 20 世纪 70 年代以来一直使用的关系数据库(在此处“关系”不表示“关系”)声明式查询语言。它还允许不太专业的用户与数据库交互。最初旨在对表单数据进行单表操作,后来添加了联接功能。从那时起,它一直在不断发展,支持地理、JSON、XML、分析等。Cypher 和 SQL 之间的一些区别包括:
了解更多 它们之间的区别。
Cypher |
SQL |
---|---|
RETURN | SELECT |
MATCH | FROM...JOIN ON... |
WHERE、ORDER BY、LIMIT、SKIP 相同 | |
自动分组 | GROUP BY |
使用 WITH 进行查询流水线,无需 HAVING | HAVING |
两者都支持(用户定义的)过程和函数调用 | |
COLLECT 和 UNWIND 用于聚合和扩展数据列表 | |
没有窗口函数 | |
通过 CALL {} 语法进行子查询 | FROM() |
使用 LOAD CSV 加载数据 | |
通过 CALL {} IN TRANSACTIONS 进行批处理 | |
可变路径长度模式语法 | 递归公用表表达式 (CTE) |
Cypher 查询语言与图查询语言 (GQL) ISO 项目有关吗?
Cypher 是启发 GQL ISO 项目的关键语言,该项目正在创建标准的图查询语言。开发 SQL 标准的国际委员会已同意启动 GQL 作为一种新的数据库查询语言。GQL 即将被编纂为属性图的国际标准声明式查询语言,它代表了 Neo4j 和更广泛的数据库社区多年努力的结晶。
GQL 和 GraphQL 是相同的吗?
不。GQL 是一个正在创建标准图查询语言的 ISO 项目,而 GraphQL 是一种用于 API 的查询语言。要了解有关 GraphQL 的更多信息,请访问 GraphQL.org 或参考 Neo4j 的 GraphQL 库。