用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条
件。