数据库 —— neo4j的基本语句

Neo4j是一个高性能的图数据库,具有普通数据库的事务特性,它将数据存储到图网络上,而不是表上。节点的查询和处理速度也是很快的,对于制作图谱等需求的数据存储,还是很实用的。
###下面介绍Neo4j的基本语句的使用之“插入”
1、删除所有(先清库)
MATCH (n) DETACH DELETE n
数据库 —— neo4j的基本语句_第1张图片

2、创建一个Person 名字为a 出生于1997的节点
CREATE (a:Person {name:‘a’, born:1997}) return a;
数据库 —— neo4j的基本语句_第2张图片

3、创建b和c
CREATE (b:Person {name:‘b’, born:1997}),(c:Person {name:‘c’, born:1961}) Return b,c
数据库 —— neo4j的基本语句_第3张图片

4、创建小明和小红的错误写法1
create (n:people{name:‘小明’,age:‘18’,sex:‘男’}) return n;
create (n:people{name:‘小红’,age:‘18’,sex:‘女’}) return n;
数据库 —— neo4j的基本语句_第4张图片

改为
create (n:people{name:‘小明’,age:‘18’,sex:‘男’}), (n:people{name:‘小红’,age:‘18’,sex:‘女’}) return n; 仍然错误
数据库 —— neo4j的基本语句_第5张图片

5、逐条插入小明和小红,才是正确写法,如果不用create,可以使用merge,则可以插入多条
create (n:people{name:‘小明’,age:‘18’,sex:‘男’})return n;
数据库 —— neo4j的基本语句_第6张图片

6、根据id建立关系
数据库 —— neo4j的基本语句_第7张图片

将之前定义的小红和小明建立关系,通过他们的id
start m =node(1025),f=node(1024) create (m)-[n:gift]->(f) return m,f
数据库 —— neo4j的基本语句_第8张图片

7、新创建一个a和b,此时这句话,相当于新建了一个a和b并赋予关系,并不是给之前的name为a和b的Person建立关系
CREATE (m:Person{name:‘a’})-[:gift]->(f:Person{name:‘b’}) return m,f
数据库 —— neo4j的基本语句_第9张图片

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
数据库 —— neo4j的基本语句_第10张图片

2、查询所有标签中,出生于1997的
Match(n{born:1997}) return n
数据库 —— neo4j的基本语句_第11张图片
查询年龄为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;
数据库 —— neo4j的基本语句_第12张图片

5、查询两级关系
match q=(n:A{name:‘宅院2’})-[]-(),p=(n:A{name:‘宅院2’})-[]-()-[]-() return p,q;
数据库 —— neo4j的基本语句_第13张图片

6、层级查找
match p=(n:A)-[n1:包含]-(),q=()-[n2:住在]-()return p,q;
数据库 —— neo4j的基本语句_第14张图片

match p=(n:A)-[n1:包含]-()return p;
数据库 —— neo4j的基本语句_第15张图片

match p=(n:A)-[]-(),q=()-[n1:还有]-() return p,q;
数据库 —— neo4j的基本语句_第16张图片
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的基本语句_第17张图片

###下面介绍Neo4j的基本语句的使用之“删除”
1、删除节点c
数据库 —— neo4j的基本语句_第18张图片
2、删除节点d
数据库 —— neo4j的基本语句_第19张图片
解决办法
先删除a和d之间的关系

MATCH(n:Person{name:‘a’,born:1997}),(b:Person{name:‘d’,born:1987}) merge(n)-[p:孩子]->(b) delete p;
数据库 —— neo4j的基本语句_第20张图片
再删除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;

你可能感兴趣的:(数据库)