Neo4j是一个高性能的图数据库,具有普通数据库的事务特性,它将数据存储到图网络上,而不是表上。节点的查询和处理速度也是很快的,对于制作图谱等需求的数据存储,还是很实用的。
###下面介绍Neo4j的基本语句的使用之“插入”
1、删除所有(先清库)
MATCH (n) DETACH DELETE n
2、创建一个Person 名字为a 出生于1997的节点
CREATE (a:Person {name:‘a’, born:1997}) return a;
3、创建b和c
CREATE (b:Person {name:‘b’, born:1997}),(c:Person {name:‘c’, born:1961}) Return b,c
4、创建小明和小红的错误写法1
create (n:people{name:‘小明’,age:‘18’,sex:‘男’}) return n;
create (n:people{name:‘小红’,age:‘18’,sex:‘女’}) return n;
改为
create (n:people{name:‘小明’,age:‘18’,sex:‘男’}), (n:people{name:‘小红’,age:‘18’,sex:‘女’}) return n; 仍然错误
5、逐条插入小明和小红,才是正确写法,如果不用create,可以使用merge,则可以插入多条
create (n:people{name:‘小明’,age:‘18’,sex:‘男’})return n;
将之前定义的小红和小明建立关系,通过他们的id
start m =node(1025),f=node(1024) create (m)-[n:gift]->(f) return m,f
7、新创建一个a和b,此时这句话,相当于新建了一个a和b并赋予关系,并不是给之前的name为a和b的Person建立关系
CREATE (m:Person{name:‘a’})-[:gift]->(f:Person{name:‘b’}) return m,f
8、那么如何给之前定义成功的接点之间建立联系,用match
//MATCH (n:Pesson{name:‘a’}),(b:Pesson{name:‘张三’}) Merge(n)-[:贿赂]->(b)
MATCH(n:Person{name:‘a’,born:1997}),(b:Person{name:‘b’,born:1997}) merge(n)-[:老师]->(b)
9、创建节点同时指定关系
match (a:Test),(b:Test)
where a.name=‘杜甫’ and b.name=‘李白’
create (a)-[:哈哈]->(b)
10、创建一个新的节点,直接和已存在的点建立关系
match (a:Test{name:‘杜甫’}) merge (b:Test{name:‘d样’})-[:哈哈]->(a);
###下面介绍Neo4j的基本语句的使用之“查询”
1、查询所有
MATCH (n) RETURN n
2、查询所有标签中,出生于1997的
Match(n{born:1997}) return n
查询年龄为18的Person,结果不包含people
MATCH (n:Person{age:‘18’}) return n;
3、指定查找个数
MATCH (n:Test) RETURN n LIMIT 25
查找Test 25个
4、查询一级关系
match q=(n:A{name:‘宅院2’})-[]-()return q;
5、查询两级关系
match q=(n:A{name:‘宅院2’})-[]-(),p=(n:A{name:‘宅院2’})-[]-()-[]-() return p,q;
6、层级查找
match p=(n:A)-[n1:包含]-(),q=()-[n2:住在]-()return p,q;
match p=(n:A)-[n1:包含]-()return p;
match p=(n:A)-[]-(),q=()-[n1:还有]-() return p,q;
7、查找三层关系
match p=(n:A)-[]-(),q=(n1:B)-[]-() return p,q;
###下面介绍Neo4j的基本语句的使用之“修改”
1、将名字为a的节点,的born 修改成2003
MATCH (n:Person)WHERE n.name="a"SET n.born = 2003RETURN n;
###下面介绍Neo4j的基本语句的使用之“删除”
1、删除节点c
2、删除节点d
解决办法
先删除a和d之间的关系
MATCH(n:Person{name:‘a’,born:1997}),(b:Person{name:‘d’,born:1987}) merge(n)-[p:孩子]->(b) delete p;
再删除d
MATCH(n:Person{name:‘d’})delete n;
3、删除节点b,以及b的关系
MATCH(n:Person{name:‘a’,born:1997}),(b:Person{name:‘b’,born:1997}) merge(n)-[p:老师]->(b) delete p,b;
4、删除Test及其所有关系
match p=(n:Test)-[]-() delete p;