一、新建
(1) 新建节点
- 创建没有属性节点
CREATE (n:Useless)
- 创建有属性节点
CREATE (d:Dept { deptno:10,dname:"研发部",location:"高新区" });
CREATE (e:Employee { name:"婷姐",age:25 });
CREATE (e:Employee { name:"马哥" ,age:25});
CREATE (e:Employee { name:"小贾" ,age:25});
CREATE (e:Employee { name:"长明" ,age:25});
CREATE (e:Employee { name:"小米" });
- 创建多个标签
CREATE (m:Employee:Emp:User)
- 创建多个节点
CREATE (A:Person{name: 'A', property:13 }), (B:Person{ name: 'B', property:33,eyes: 'blue' }), (C:Person{ name: 'C', property:44,eyes: 'blue' }), (D:Person{ name: 'D', eyes: 'blue' }) return A,B,C,D
(2) 新建关系
2.1,使用现有节点创建没有属性的关系
MATCH (emp:Employee{name:'马哥'}),(d:Dept{dname:'研发部'})
CREATE (emp)-[r:belongs_to]->(d) return r
2.2,使用现有节点创建有属性的关系
MATCH (emp:Employee{name:'婷姐'}),(d:Dept{dname:'研发部'})
CREATE (e)-[r:belongs_to{date:"2020-09-09",no:"101"}]->(d) return r
2.3,使用新节点创建没有属性的关系
CREATE (fb1:FaceBookProfile1)-[like:LIKES]->(fb2:FaceBookProfile2)
2.4,使用新节点创建有属性的关系
CREATE(video1:YoukuVideo1{title:"Action Movie1",updated_by:"Abc",uploaded_date:"10/10/2010"})-
[movie:ACTION_MOVIES{rating:1}]
->(video2:YoukuVideo2{title:"Action Movie2",updated_by:"Xyz",uploaded_date:"12/12/2012"})
2.5,检索关系节点的详细信息
MATCH (cust:Customer)-[r:DO_SHOPPING_WITH]->(cc:Card)
RETURN cust,cc
2.6,如果关系存在,则不创建,不存在则创建
MATCH (cust:org),(cc:discipline)
Where cust.org_id=1 and cc.md_id=1460521003320418306 and not (cust)-[:IN]->(cc)
Create (cust)-[:IN]->(cc)
二、更新
(1)向现有节点或关系添加新属性
MATCH (book:Book)
SET book.title = '围城'
RETURN book
(2)添加或更新属性值
MATCH (book:Book)
SET book.publish = '人民文学出版社'
RETURN book
(3)merge-on create
增加关系
Match (n:Person{name:'妈妈'}),(f:Person{name:'爸爸'})
Merge(n)-[:`夫妻`]->(f)
删除关系,增加关系
Match (n:Person{name:'妈妈'}),(f:Person{name:'爸爸'})
Merge(n)-[r:`夫妻`]->(f) delete r
Merge(n)-[:`金婚`]->(f)
更新节点
MERGE (o:org{org_id:1})
ON MATCH SET o.org_id=1,o.sort=1,o.org_name='测试',o.org_code='001',
o.remarks='哈哈',o.status=1,o.rec_status=1 RETURN o
三、删除
(1)删除节点与关系——delete
删除单个节点
MATCH (n:Useless) DELETE n
删除单个节点和连接它的关系
MATCH (n { name: '张三' })-[r]-() DELETE n, r
删除所有节点和关系
MATCH (n) OPTIONAL MATCH (n)-[r]-() DELETE n,r
删除某一类关系
match (n)-[r:`金婚`]-() delete r
(2)删除标签与属性——remove
删除属性
MATCH (andres { name: 'Andres' }) REMOVE andres.age RETURN andres
删除节点的标签
MATCH (n { name: 'Peter' }) REMOVE n:German RETURN n
删除多重标签
MATCH (n{name:'Peter' }) REMOVE n:Emp:User RETURN n
(3) Neo4j CQL DELETE和REMOVE命令之间的主要区别 -
- DELETE操作用于删除节点和关联关系。
- REMOVE操作用于删除标签和属性。
(4)Neo4j CQL DELETE和REMOVE命令之间的相似性 -
- 这两个命令不应单独使用。
- 两个命令都应该与MATCH命令一起使用。