我们可以编写 SQL 查询而不是 CQL 吗?

Posted

技术标签:

【中文标题】我们可以编写 SQL 查询而不是 CQL 吗?【英文标题】:Can we write SQL query instead of CQL? 【发布时间】:2019-12-09 14:08:47 【问题描述】:

我正在使用 JDBC 驱动程序 (org.neo4j.jdbc.bolt.BoltDriver) 连接到 neo4j (jdbc 链接 url:neo4j-jdbc-driver-link)。可以看到我们需要在执行查询时编写 SQL。

我们可以编写 SQL 查询而不是像 SELECT p.* FROM products as p; 这样的 CQL 吗?

【问题讨论】:

请注意,Cypher 并不难上手。该查询的等价物是,假设我们有:Product 节点:MATCH (p:Product) RETURN p,但请注意,这只是p 的单列,每行有一个属性映射。正如 Luanne 所说,Neo4j 没有表的概念,没有任何东西可以确定特定标签的节点必须具有的属性。 SQL 可以动态推断列,因为这是在 products 表中定义的。这在 Neo4j 中不存在,因此无法推断(没有更复杂的查询和标签扫描),即使那样也不会是动态的。 【参考方案1】:

不,它只接受 Cypher。 Neo4j 中没有表的概念。文档位于https://neo4j-contrib.github.io/neo4j-jdbc/

【讨论】:

以上是关于我们可以编写 SQL 查询而不是 CQL 吗?的主要内容,如果未能解决你的问题,请参考以下文章

深入理解CQL中的Where子句

geoserver配置SQL图层 cql_filter模糊查询

geoserver配置SQL图层 cql_filter模糊查询

Cassandra CQL - NoSQL 或 SQL

SQL,HQL,CQL,JPQL了解

执行简单的CQL操作