数据库 —— neo4j的基本语句

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;
这里写图片描述

6、根据id建立关系
这里写图片描述

将之前定义的小红和小明建立关系,通过他们的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;

  • 14
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值