Neo4j cypher 查询

用Neo4j 实现MySQL中的SELECT、FROM、WHERE、AND、OR、JOIN、ON等操作

SELECT

在MySQL中,SELECT是用来选
择想要显示的列的操作。

例如:

SELECT name, age FROM students;

这条语句将会从students表中选择出name和age两列。

在Neo4j Cypher查询中,SELECT对应的部分是MATCH和RETURN。MATCH用来筛选出想要的节点,RETURN则是用来返回所需的属性。

例如:

MATCH (n:Student)
RETURN n.name, n.age;

这条语句将会从
所有的Student节点中选择出name和age两个属性。

FROM

在MySQL中,FROM是用来指定查询的表的操作。

例如:

SELECT * FROM students;

这条语句将会从students表中选择出所有的数据。

在Neo4j Cypher查询中,FROM对应的
部分是MATCH。

例如:

MATCH (n) RETURN n;

这条语句将会选择出所有的节点。

WHERE

在MySQL中,WHERE是用来指定查询条件的操作。

例如:

SELECT * FROM students WHERE age > 18;

这条语句将会从students表中选择出所有age大于18的数据。

在Neo4j Cypher查询中,WHERE对应的部分是WHERE。

例如:

`cypher
MATCH (n:Student) WHERE n.age >
18
RETURN n;

这条语句将会从所有的Student节点中选择
出age大于18的节点。

AND/OR

在MySQL中,AND和OR是用来连接多个查询条件的操作。

例如:

SELECT * FRO
M students WHERE age > 18 AND gender = '
male';

这条语句将会从students表中选择出所有age大于18且gender为male的数据。

在Neo4j Cypher查询中,AND和OR分别对应AND和OR。

例如:

MATCH (n:S
tudent) WHERE n.age > 18 AND n.gender =
'male'
RETURN n;

这条语句将会从所有的Student节
点中选择出age大于18且gender为male的节点。

JOIN/ON

在MySQL中,JOIN/ON是用来连接多个表的操作。

例如:

SELECT * FROM students JOIN courses O
N students.id = courses.student_id;

这条语句将会从students和courses表中选择出符合条件的数据。


Neo4j Cypher查询中,JOIN对应的部分是MATCH,ON对应的部分是
WHERE。

例如:

MATCH (n:Student)
-[:STUDY]->(c:Course)
WHERE n.id = c.stu
dent_id
RETURN n, c;

这条语句将会从所有的Student和Course节点中选择出符合条件的节点。其中,-[:STUDY]->表示
的是两个节点之间的关系,n.id = c.student_id表示的是Join条
件。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容