Neo4j图形数据库教程
目录
参考
图数据库、关系型数据库
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图形数据库教程相关推荐
- 全网最详细的Neo4j安装教程
全网最详细的Neo4j安装教程 一.前言 Neo4j是一个高性能的NOSQL图形数据库,它将结构化数据存储在网络上而不是表中.它是一个嵌入式的.基于磁盘的.具备完全的事务特性的Java持久化引擎,但是 ...
- neo4j图形数据库第七弹——整合vis.js实现数据可视化
正经学徒,佛系记录,不搞事情 基于上文:https://blog.csdn.net/qq_31748587/article/details/84232352 vis.js的项目 基于上文:https ...
- neo4j使用教程(数据的导入和简单的语句)
写在前面:在前边出了一个详细的neo4j安装教程之后,写一个简单的neo4j使用教程. 1 数据的导入 数据的导入这里介绍两个常用的方法,语句导入和用cmd命令行导入. 1.1 创建数据 例如,创建两 ...
- 【知识图谱】Py2neo操作Neo4j使用教程
Py2neo操作Neo4j使用教程 1. Py2neo 安装 2. 连接 Neo4j 3. 数据对象 Object 3.1 Node 3.2 Relationship 3.3 Subgraphs 4. ...
- 知识图谱neo4j入门教程
因为研究生需要学习知识图谱,在网上找了一些教程没有很合适的,所以在此记录所学方便以后查看.(会陆续更新,学到哪写到哪,先按照我自己的笔记写了,等有人看再整理顺序吧.) PS:本人是个小白,写的比较通俗 ...
- Neo4j 图形数据库
目录 Neo4j 基础 什么是Neo4j Neo4j 模块构建 Neo4j的主要应用场景 Neo4j 环境搭建 Docker 安装Neo4j Neo4j数据浏览器 Neo4j CQL CQL简介 Ne ...
- 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 ...
- Neo4j图形数据库的一些基本Cypher查询指令总结
1 Cypher查询语言简介 2 一些常用语句 2.1 批量创建导入节点 2.2 查看节点 2.3 批量删除节点 2.4 批量创建导入节点间关系 2.5 查询节点间关系 2.6 批量删除节点间关系 2 ...
- 超详细neo4j安装教程
一.neo4j简介 最近开始学习知识图谱,所以首先想先学习一下neo4j的使用. Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中.由于知识图谱中存在大量的关系型信 ...
最新文章
- 南京大学潘天群教授:人类智能发展的宏大叙事
- POJ 3030 Nasty Hacks (模拟题)
- Python学习笔记011——内置函数exec()
- mysql 核对_核对数据库表记录的shell脚本
- php时间跨度,在PHP中执行与日期时间相关的操作
- 计算机关于word试题及答案,职称计算机考试Word操作试题及答案
- Erlang中的RSA签名
- 根据二次曲面模型法建立区域高程异常拟合模型
- 戏人看戏,苏旭博客网-学无止尽
- vue使用LayIM组件接入第三方通讯平台:融云
- 表格(table)属性cellspacing、cellpadding
- 10g gtx 光纤通信测试_S03-CH05_UDP 万兆光通信
- Live555: RtspServer 示例
- 服务器突然Out of memory的问题排查
- VirtualBox找不到桥接网卡问题解决
- 火狐浏览器 : 获取安卓系统新版火狐浏览器(fenix).2021-02-19
- IDM+百度云链下载网盘资源
- 串联谐振测试仪的原理是什么,RLC串联谐振电路详解
- WSockExpert抓包工具
- 使用JTAG是如何烧写SPI/BPI Flash的?
热门文章
- js 鼠标按下并移动事件
- 【程序员面试金典】 01.09. 字符串轮转
- consul-02.consul服务注册实现(java)
- Python list 和 numpy 实现 3-sigma 异常值剔除和异常值替换实例
- Streamsets--一个流批一体的ETL工具
- 延缓写入失败计算机硬件,XP系统提示“延缓写入失败文件”的四种原因和解决方法-...
- 微信小程序first-child 和 last-child 失效,设置后不起作用~
- 《麦肯锡方法》读书思维导图
- 牛妹的字符串(删除ascii码最小的k个字母)
- 高等学校计算机专业教材精选计算机基础,大学计算机基础教程/高等学校计算机基础教育教材精选简介,目录书摘...