match (n:Person{name:""王五""}), (m:Person{name:"赵六"}) create (n)-[k:KNOW]->(m) return k
delete 删除实体或关系
先用match查找已有实体、关系, 再用delete删除关系
1
match (n:Person{name:"李四"})-[f:FEAR]->(t:Tiger) delete f
删除所有节点中的边关系
1
match(m)-[b:bian]-(n) delete b
match查询实体,delete删除实体
1
match (n:Person{name:"李四"}) delete n
同时删除实体和关系
1
match(n) detach delete n
删除所有节点
1
match (n) delete n
删除所有节点并级联删除关系
1
match (n) detach delete n
删除Loc标签的所有节点和关系
1
MATCH (r:Loc) DETACH DELETE r
match查询节点和关系
1 2 3 4 5 6 7
match (node)-[relationship]->(node) where (node | relationship) return (node | relationship) match (n:Persion)-[:HAS_PHONE]->(p:Phone) where n.name="姓名6" return n, p limit 10
n,代表Persion的别名
:HAS_PHONE,代表前面Persion的关系
(),括号里的都是实体
[],中括号里的都是关系
-,代表无方向的关系
->,代表有方向的关系
查询所有实体节点
1
match(n) return n
根据id查找实体
1 2
match (t:Tiger) where id(t)=1837return t match (t:Tiger) where id(t)=1837 delete t
多度关系查询
1
match (n:Persion)-[:HAS_PHONE]->(p:Phone)-[:CALL]->(p1: Persion) where n.name=“姓名6” return n, p,p1 limit 10
利用关系查询, 不限定实体只限定关系的查询
1
match p=()-[c: CALL]->() return p limit 10
根据实体属性匹配正则查询, 使用通配符,通配符前要加~
1
match (n:USERS) where n.name=~'Jack.*'return n limit 10
包含查询 使用关键词contains
1
match (n:USERS) where n.name= contains 'J'return n limit 10
附带属性多实体查询, 逗号隔开
1
match (n:Person{name:"王五"}), (m:Person{name:"赵六"}) return n,m
查询多种label节点,并进行过滤
1
match(n) where n:标签1or n:标签B return distinct n;
distinct * 关键字表示返回节点不重复
返回非某几类标签,注意使用 not and 关键字
1
match(n) where not n:标签1andnot n:标签B return distinct n;
set 修改实体标签或属性
实体增加标签
1
match (t:Tiger) where id(t)=1837 set t:A return t
本质上是给实体增加一个标签,一个实体可以有多个标签
给实体增加属性
1
match (a:A) where id(t)=1837 set a.年龄=10return a
给关系增加属性
1
match (n:Person)-[l:LOVE]->(:Person) set l.date="1990" return n, l
给所有节点增加标签
1
match(n) set n:table return n
搜索路径
单条最短路径
1
match (p1:Person{name:"姓名2"}),(p2:Person{name:"姓名10"}), p=shortestpath((p1)-[*..10]-(p2)) return p
shortestpath()用于查询最短路径 [..10] 表示关系中*不超过10度关系**
多条最短路径
1
match (p1:Person{name:"姓名2"}),(p2:Person{name:"姓名10"}), p=allshortestpaths((p1)-[*..10]-(p2)) return p
关系查询
merge 有关系则返回,没有则创建关系
1 2 3
match (n:Person{name:"王五"}), (m:Person{name:"赵六"}) merge (n)-[l:LOVE]->(m) return l
match (n),(m) where n=m merge (n)-[t:TABLE{table_name:n.table}]-(m) return t