Neo4j中有标签(labels),节点(Node),关系(Relation),路径(path)
创建节点
创建Person 标签,康康、赛赛等节点,有name,birthday ,born,gender等属性
create (n:Person { name: ‘康康’, birthday:‘1998年11月08日’,born: 1998 ,gender:‘female’});
create (n:Person { name: ‘赛赛’, birthday:‘1996年11月13日’,born: 1996 ,gender:‘male’}) ;
create (n:Person { name: ‘白白’, birthday:‘1997年02月02日’,born: 1997 ,gender:‘male’}) ;
create (n:Person { name: ‘渣渣’, birthday:‘2020年01月01日’,born: 2020 ,gender:‘male’}) ;
create (n:Person { name: ‘居居’, birthday:‘1999年10月11日’,born:1999,gender:‘female’}) ;
create (n:Person { name: ‘哈哈’, birthday:‘1999年11月29日’,born: 1999,gender:‘female’}) ;
创建school 标签,中央民族大学等若干节点,各自有title,released 等属性
create (n:school { title: ‘中央民族大学’,released: 2016})
create (n:school { title: ‘西南民族大学’,released: 2017})
create (n:school { title: ‘北京交通大学’,released: 2018})
create (n:school { title: ‘北京理工大学’,released: 2019})
查询节点
查询school标签下的节点: match(n:school) return n;
查询名称为赛赛的节点:match (n:Person) where n.name=‘赛赛’ return n ;
(查询具有指定属性的节点):match(n{name:‘赛赛’}) return n;
查询born属性小于1998的节点:match(n) where n.born<1998 return n;
创建关系
关系的构成:StartNode - [Variable:RelationshipType{Key1:Value1,Key2:Value2}] -> EndNode,在创建关系时,必须指定关系类型。
1.创建关系,不设置属性:MATCH (a:Person),(b:school) WHERE a.name = ‘赛赛’ AND b.title = ‘中央民族大学’ CREATE (a)-[r:就读 ]->(b) RETURN r;
2.创建关系,并设置关系的属性:MATCH (a:Person),(b:school) WHERE a.name = ‘康康’ AND b.title = ‘中央民族大学’ CREATE (a)-[r:就读 { roles:[‘学生’] }]->(b) RETURN r;
无属性关系:
有属性关系:
删除节点和关系
删除节点以及与之相关的关系
MATCH (n:Person)-[r]-() DELETE n,r
删除没有关系的节点
MATCH (n:Person) DELETE n;
查询
match data=(na:Verdict{title:‘康康’})-[rel*1…3]->(nb) return na,rel,nb