Neo4j的Cypher和关系型数据库的SQL语言比会更难吗?Cypher有哪些SQL不能做的功能?
如题,想请教一下,Neo4j的Cypher和SQL相比更难吗?难点在哪里?Cypher有哪些SQL不能实现的功能吗?
2 回复
Cypher跟SQL一样是一种声明式查询语言,意思是我通过Cypher来表达我想要获取什么数据,系统会觉得如何获取这些数据。这一点上不比SQL难。 Cypher使用了模式匹配和路径表达的一些图数据模型专用的表达方式,就像你说英语要使用英语的语法一样,这是不一样的地方,也不是更难。 Cypher也不是万能的,在有些表达上也会有局限,这个就可以使用APOC扩展来实现了,比较像存储过程,这一点我个人觉得要掌握APOC还是比较难的,只能说,用的多了就熟悉了。
另一个角度,可以这么看:为什么要推出一个新的查询语言Cypher?不就是为了:解决SQL在查询图模式的情况下无法表达的问题嘛。那哪些是SQL写起来很难而Cypher很容易实现的?这些就是SQL不能或者很好实现的功能了。