Neo4j(cypher)基础

1、创建不带属性(或者带属性的节点:)

Create(node-name:label-name{属性列表})

{属性列表} 写法:{property-name1:value1,property-name2:value2,...}

例如:Create(person:Person{name:"典韦",nickname:"**",belong:"魏",age:35,famours:"护主",damage:91})

注意点:这里的node-name和label-name的区别,label-name相当于SQL数据库的表名!!!node-name是系统使用的,我们以后可以这样记忆,node-name是用来存放操作后(如查询到的)临时数据表,所以我们进行的所有操作都是在这个临时表上进行的。

2、查询所有创建的节点

match(n) return n;

注意match语句一定要和return语句联合使用

3、查询一个表的所有节点:

match(temp:Person) return temp;

注意上面的temp是存放查询数据的临时表,名字可以随便写。接着的是“表名”,必须写正确。然后想要显示查询结果我们必须返回临时表!

4、查询指定属性的节点:

match(temp:Person) where temp.name="郭嘉"  return temp;

5、可以使用一些SQL语句中的关键字进行复杂的集合查询

match(temp:Person) where temp.name="郭嘉" OR temp.name="诸葛亮"  return temp;

6、删除指定的不带关系的节点(如果带关系需要先删除关系才能删除节点):

match(temp:Person) where temp.name="汉献帝" delete temp;

7、删除一个不带关系的表:

match(temp:Test) delete temp;

这条语句会删除表中的所有数据。

8、删除所有节点(节点都不能带关系)

match(n) delete(n);

9、删除所有关系和节点:

MATCH (n)  OPTIONAL MATCH (n)-[r]-()  DELETE n,r

10、删除指定表的关系和节点:

match(NFrom:Test)-[r]-() delete NFrom,r;

11、删除节点的关系但是不删除节点

match(temp1:Test)-[r]-(temp2:Test) where temp1.name="吕布" and temp2.name="董卓" delete r;

12、创建已经存在的两个指定节点间的关系:

match(NFrom:Test),(NTo:Test) Where NFrom.name="张角" and NTo.name="吕布" Create(NFrom)-[r:群雄]->(NTo);

其实上面的语句就是先查找到表,然后在临时表中查询该人,然后在这两个人中间创建一个关系,中括号中的[]关系中两个名字和node-name与label-name作用一样!
13、创建两个节点的同时创建关系

Create(NFrom:Test{name:"貂蝉"})-[r:人间绝色]->(NTo:Test{name:"大乔"})

14、创建新建的节点和已经有的节点之间的关系:

match(NFrom:Test) where NFrom.name="吕布" Create(NFrom)-[r:夫君]->(NTo:Test{name:"貂蝉"})

其中貂蝉节点是新节点

注意:在上面的关系中。[r:关系]中,关系也是可以有属性的,如果我们需要创建属性的话,那么只需要如下:

[r:关系{属性列表}]如下:

match(NFrom:Test) where NFrom.name="吕布" Create(NFrom)-[r:义子{Time:"公元前407年",Event:"为赤兔杀丁原"}]->(NTo:Test{name:"董卓"})

15、查询的时候跳过一部分数据:

match(temp:Person) return temp skip 2    

上面的代码可以跳过前两条数据

16、修改属性:

match(temp:Person) where temp.name="诸葛亮" Set temp.nickname="孔明";

 

;