4-Cypher基础语法

Cypher简介

Cypher作为Neo4j的查询语言,其语法针对图的特点而设计,非常方便、可读。

CREATE命令

CREATE命令用于创建带有属性的节点。 它创建一个具有一些属性(键值对)的节点来存储数据。

CREATE (dept:Dept { deptno:10,dname:"Accounting",location:"Hyderabad" })

Match命令

Match命令用于从数据库获取有关节点和属性的数据(类似于SQL中的Select)。

MATCH (dept:Dept)

SET子句

SET子句的作用是向现有节点或关系添加新属性、添加或更新属性值。(类似于关系型数据库中的update。)

Match (n:Person {id:'baba'}) set n.name='张三',n.age=50 return n

DELETE删除

通过使用DELETE命令,我们可以从数据库永久删除节点及其关联的属性。

MATCH (s:Teacher)-[r:teach]->(d:Student) delete r,s,d //删除与该关系相关的老师和学生及label 
Match (a:Person),(b:Person) where a.id='erzi' and b.id='bozi' merge (a)-[r:FUQI]->(b) DELETE r //删除一个relation

REMOVE删除

我们可以使用 REMOVE语法从数据库中永久删除标签、节点或关系的属性或属性列表。

它的使用方法与DELETE类似,这里仅展示示例:

Match (n:Person {id:'baba'}) remove n.age return n //删除属性

LIMIT和SKIP子句

Limit 子句,显示多少行,最前边开始:

MATCH (n:Person) RETURN n LIMIT 25

Skip子句,跳过前多少行:

MATCH (n:Person) RETURN n order by n.id desc skip 2  LIMIT 25

Sorting排序

排序语法同SQL相同,这里仅展示示例:

MATCH (n:Person) RETURN n order by n.id,n.name desc //根据id和name进行倒序排列
MATCH (n:Person) RETURN n order by n.id LIMIT 25 //正序排列

IN操作符

与SQL一样,Neo4j CQL提供了一个IN运算符,以便为CQL命令提供值的集合。

MATCH (n:Person) where n.age>20 RETURN n.id,n.age 
union all 
MATCH (n:Person) where n.id in ['erzi','bozi','baba']  RETURN n.id,n.age

NULL值

当有数据为null的时候,Cypher和SQL一样,也可以通过is null / is not null 进行数据过滤。

MATCH (n:Person) where n.age>20 RETURN n.id,n.age 
union all
MATCH (n:Person) where n.id='erzi' and n.age is not null  RETURN n.id,n.age

UNION联盟

与SQL一样,Neo4j CQL有两个子句,将两个不同的结果合并成一组结果:
1.UNION
2.UNION ALL

Union:把多段Match的return结果 上线组合成一个结果集,会自动去掉重复行。

Union all:作用同union,但不去重。

MATCH (n:Person) where n.age>20 RETURN n.id,n.age 
union all
MATCH (n:Person) where n.id='erzi' RETURN n.id,n.age

猜你喜欢

转载自blog.csdn.net/weixin_37681618/article/details/80686421