Neo4j 图数据库Cypher语法基础


  Cypher是Neo4J的声明式图形查询语言,允许用户不必编写图形结构的遍历代码,就可以对图形数据进行高效的查询。Cypher的设计目的类似SQL,适合于开发者以及在数据库上做点对点模式(ad-hoc)查询的专业操作人员。其具备的能力包括: - 创建、更新、删除节点和关系 - 通过模式匹配来查询和修改节点和关系 - 管理索引和约束等。


 

创建节点:

CREATE (n:`涅法雷姆` {name:'拉斯玛'}) RETURN n

涅法雷姆是标签,代表新的节点是一个“涅法雷姆”;{}花括号内为节点的属性,其中name的值为拉斯玛。

 

查询节点:

MATCH (n:`涅法雷姆` {name: '布尔凯索'}) return n

查询标签为涅法雷姆并且属性name为布尔凯索的节点。

 

删除节点:

MATCH (n:`涅法雷姆` {name: '伊苏'}) DELETE n

删除属性name为伊苏的涅法雷姆。

 


 

添加关系:

MATCH (a:`天使` {name:'伊纳瑞斯'}), (b:涅法雷姆 {name:'拉斯玛'}) CREATE (a)-[r:`父亲`]->(b)

创建一条由天使伊纳瑞斯指向涅法雷姆拉斯玛的边,边的名字为父亲。直观来讲就是创建了伊纳瑞斯与拉斯玛的父子关系。

 

查询关系:

MATCH p=(a:`恶魔` {name: '莉莉丝'})-[r:`母亲`]->() RETURN p

查询由恶魔莉莉丝节点开始的所有名为母亲的边。直观来讲就是查询莉莉丝的所有孩子。

 

删除关系:

MATCH (a:`天使`)-[r:`父亲`]-(b:`涅法雷姆`) DELETE r

删除所有天使与涅法雷姆的父亲关系。

 


 

添加/修改节点属性:

MATCH (n:`涅法雷姆` {name: '拉斯玛'}) SET n.desc = '第一个涅法雷姆,也是死灵法师们的祖师爷'

为涅法雷姆拉斯玛增加属性desc,并设置值为“第一个涅法雷姆,也是死灵法师们的祖师爷”。若属性已存在则会修改原值。

 

删除节点属性:

MATCH (n:`涅法雷姆` {name: '拉斯玛'}) REMOVE n.desc

删除涅法雷姆拉斯玛的属性desc。

 


 

删除节点+关系:

MATCH (n:`涅法雷姆`) DETACH DELETE n

在DELETE前加上DETACH就可以删除MATCH匹配到的节点本身和它的所有关系。

 


 

创建索引:

CREATE INDEX ON :`涅法雷姆`(name)

为标签涅法雷姆的属性name创建索引。

 

删除索引:

DROP INDEX ON :`涅法雷姆`(name)

删除标签涅法雷姆属性name的索引。

 


 

 

 

posted @ 2021-04-06 11:48  何效名  阅读(266)  评论(0编辑  收藏  举报