目录

参考

图数据库、关系型数据库

Delete、Remove

案例

1、创建节点

2、创建结构关系

3、显示结果

3.1 一般显示

3.2、筛选出子孙绵延四代的树干

3.3、 筛选出存在三代子孙的树干

3.4、 筛选出某个节点为顶点的三代子孙树干

4、延申 -再加入数据

5、深度运算符[*1..3]+With


参考

1、  史上最全面的Neo4j使用指南

2、 re

3、【Neo4j学习】应用案例

4、 Neo4j 图数据库在社交网络等领域的应用


图数据库、关系型数据库

图形数据库

以图形结构的形式存储数据的数据库。 它以节点,关系和属性的形式存储应用程序的数据;GDBMS以“图形”的形式存储数据

RDBMS(关系型数据库)

以表的“行,列”的形式存储数据

Tables 表  Graphs 图表
Rows 行      Nodes 节点
Columns and Data 列和数据 Properties and its values属性及其值

CREATE (<node-name>:<label-name>)

节点标签:相当于表  (注意:这里表述的是节点标签)

节点:       相当于行


Delete、Remove

DELETE

删除节点和关系

REMOVE

删除节点或关系的标签:

MATCH (m:Movie) REMOVE m:Picture

删除节点/关系的属性  :

MATCH (book { id:122 })
REMOVE book.price
RETURN book类似:ALTER TABLE BOOK REMOVE COLUMN PRICE;
SELECT * FROM BOOK WHERE ID = 122;

案例

1、创建节点

create(suxun:Person{name:"苏洵",age:80,sex:"男"})
create(sushi:Person{name:"苏轼",age:53,sex:"男"})
create(suzhe:Person{name:"苏辙",age:51,sex:"男"})
create(suxiaomei:Person{name:"苏小妹",age:45,sex:"女"})
create(susun:Person{name:"苏孙",age:29,sex:"男"})
create(suxiaosun:Person{name:"苏重孙",age:6,sex:"女"})

2、创建结构关系

match(p1:Person),(p2:Person)
where p1.name="苏洵" and p2.name = "苏轼"
create (p1) -[parent:Parent{relation:"父亲"}]-> (p2);match(p1:Person),(p2:Person)
where p1.name="苏洵" and p2.name = "苏辙"
create (p1) -[parent:Parent{relation:"父亲"}] -> (p2);match(p1:Person),(p2:Person)
where p1.name="苏洵" and p2.name = "苏小妹"
create (p1) -[parent:Parent{relation:"父亲"}] -> (p2);match(p1:Person),(p2:Person)
where p1.name="苏轼" and p2.name = "苏孙"
create (p1) -[parent:Parent{relation:"父亲"}] -> (p2);match(p1:Person{name:"苏孙"}),(p2:Person{name:"苏重孙"})
create (p1) -[parent:Parent{relation:"父亲"}] -> (p2);

 以上用了两种方式: 

  • 第一种用where进行节点筛选,例如 where p1.name="苏洵" and p2.name = "苏轼"
  • 第二种用属性进行节点筛选,例如match(p1:Person{name:"苏孙"}),(p2:Person{name:"苏重孙"})

3、显示结果

3.1 一般显示

match(a)-[r:Parent]->(b) return a, r, b

3.2、筛选出子孙绵延四代的树干

match(a)-[r1:Parent]->(b)-[r2:Parent]->(c)-[r3:Parent]->(d) return a,  b, c, d

3.3、 筛选出存在三代子孙的树干

可以发现,查出来的图形虽然是只有一条链路,但其实代表两条数据,各三级节点,如下

3.4、 筛选出某个节点为顶点的三代子孙树干

match(a{name:"苏洵"})-[r1:Parent]->(b)-[r2:Parent]->(c) return a,  b, c

4、延申 -再加入数据

create(caocao:Person{name:"曹操",age:70,sex:"男"})
create(caozhi:Person{name:"曹植",age:43,sex:"男"})
create(caopi:Person{name:"曹丕",age:41,sex:"男"})


match(p1:Person),(p2:Person)
where p1.name="曹操" and p2.name = "曹植"
create (p1) -[parent:Parent{relation:"父亲"}] -> (p2)match(p1:Person),(p2:Person)
where p1.name="曹操" and p2.name = "曹丕"
create (p1) -[parent:Parent{relation:"父亲"}] -> (p2)

如果只要查出曹操家族的图:

match(a)-[r:Parent]->(b) where a.name="曹操"  return a, r, b

如果只要查出苏洵家族的图(一层):

match(a)-[r:Parent]->(b) where a.name="苏洵"  return a, r, b

如果查出苏洵家族的图(所有):

用深度运算符解决:

match data=(a:Person{name:"苏洵"})-[*1..3]->(b:Person) return data

5、两个节点直接有多种关系

match(p1:Person),(p2:Person)
where p1.name="曹操" and p2.name = "曹植"
create (p1) -[fz:FZ{relation:"臣子"}] -> (p2)

查询所有关系 :

  MATCH p=()-[r:FZ]->() RETURN p

查询一个关系:

暂时不知道怎么实现,知道的大神麻烦留言!

5、深度运算符[*1..3]+With

参考:关于neo4j查询多深度关系节点

Neo4j图形数据库教程相关推荐

  1. 全网最详细的Neo4j安装教程

    全网最详细的Neo4j安装教程 一.前言 Neo4j是一个高性能的NOSQL图形数据库,它将结构化数据存储在网络上而不是表中.它是一个嵌入式的.基于磁盘的.具备完全的事务特性的Java持久化引擎,但是 ...

  2. neo4j图形数据库第七弹——整合vis.js实现数据可视化

    正经学徒,佛系记录,不搞事情 基于上文:https://blog.csdn.net/qq_31748587/article/details/84232352  vis.js的项目 基于上文:https ...

  3. neo4j使用教程(数据的导入和简单的语句)

    写在前面:在前边出了一个详细的neo4j安装教程之后,写一个简单的neo4j使用教程. 1 数据的导入 数据的导入这里介绍两个常用的方法,语句导入和用cmd命令行导入. 1.1 创建数据 例如,创建两 ...

  4. 【知识图谱】Py2neo操作Neo4j使用教程

    Py2neo操作Neo4j使用教程 1. Py2neo 安装 2. 连接 Neo4j 3. 数据对象 Object 3.1 Node 3.2 Relationship 3.3 Subgraphs 4. ...

  5. 知识图谱neo4j入门教程

    因为研究生需要学习知识图谱,在网上找了一些教程没有很合适的,所以在此记录所学方便以后查看.(会陆续更新,学到哪写到哪,先按照我自己的笔记写了,等有人看再整理顺序吧.) PS:本人是个小白,写的比较通俗 ...

  6. Neo4j 图形数据库

    目录 Neo4j 基础 什么是Neo4j Neo4j 模块构建 Neo4j的主要应用场景 Neo4j 环境搭建 Docker 安装Neo4j Neo4j数据浏览器 Neo4j CQL CQL简介 Ne ...

  7. Windows 10 64位系统下Neo4j安装教程(2021.1.13)

    Win 10安装Neo4j图数据库 1.Neo4j简介 2.Neo4j安装 2.1 查看安装好的JDK版本 2.1.1 JDK 11下载与安装 2.1.2 JDK8和JDK11共存 2.2 安装Neo ...

  8. Neo4j图形数据库的一些基本Cypher查询指令总结

    1 Cypher查询语言简介 2 一些常用语句 2.1 批量创建导入节点 2.2 查看节点 2.3 批量删除节点 2.4 批量创建导入节点间关系 2.5 查询节点间关系 2.6 批量删除节点间关系 2 ...

  9. 超详细neo4j安装教程

    一.neo4j简介 最近开始学习知识图谱,所以首先想先学习一下neo4j的使用. Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中.由于知识图谱中存在大量的关系型信 ...

最新文章

  1. 南京大学潘天群教授:人类智能发展的宏大叙事
  2. POJ 3030 Nasty Hacks (模拟题)
  3. Python学习笔记011——内置函数exec()
  4. mysql 核对_核对数据库表记录的shell脚本
  5. php时间跨度,在PHP中执行与日期时间相关的操作
  6. 计算机关于word试题及答案,职称计算机考试Word操作试题及答案
  7. Erlang中的RSA签名
  8. 根据二次曲面模型法建立区域高程异常拟合模型
  9. 戏人看戏,苏旭博客网-学无止尽
  10. vue使用LayIM组件接入第三方通讯平台:融云
  11. 表格(table)属性cellspacing、cellpadding
  12. 10g gtx 光纤通信测试_S03-CH05_UDP 万兆光通信
  13. Live555: RtspServer 示例
  14. 服务器突然Out of memory的问题排查
  15. VirtualBox找不到桥接网卡问题解决
  16. 火狐浏览器 : 获取安卓系统新版火狐浏览器(fenix).2021-02-19
  17. IDM+百度云链下载网盘资源
  18. 串联谐振测试仪的原理是什么,RLC串联谐振电路详解
  19. WSockExpert抓包工具
  20. 使用JTAG是如何烧写SPI/BPI Flash的?

热门文章

  1. js 鼠标按下并移动事件
  2. 【程序员面试金典】 01.09. 字符串轮转
  3. consul-02.consul服务注册实现(java)
  4. Python list 和 numpy 实现 3-sigma 异常值剔除和异常值替换实例
  5. Streamsets--一个流批一体的ETL工具
  6. 延缓写入失败计算机硬件,XP系统提示“延缓写入失败文件”的四种原因和解决方法-...
  7. 微信小程序first-child 和 last-child 失效,设置后不起作用~
  8. 《麦肯锡方法》读书思维导图
  9. 牛妹的字符串(删除ascii码最小的k个字母)
  10. 高等学校计算机专业教材精选计算机基础,大学计算机基础教程/高等学校计算机基础教育教材精选简介,目录书摘...