Neo4j 新手教程 环境安装 基础增删改查 python链接 常用操作 纯新手向

Neo4j安装教程🚀

       目前在学习知识图谱的相关内容,在图数据库中最有名的就是Neo4j,为了降低入门难度,不被网上很多华丽呼哨的Cypher命令吓退,故分享出该文档,为自己手动总结,包括安装环境,增删改查,和使用python操作等,纯干货,36张图,多图少字是咱信条。


拓展: Neo4j 批量导入数据 从官方文档学习LOAD CSV 命令 小白可食用版

1. 安装JAVA环境(前置)

官方网址:JDK安装
在这里插入图片描述

下载之后可以记一下安装路径,可能以后会用到

在这里插入图片描述

在命令提示窗口,输入java -version,查看一下安装之后环境变量是否安装成功,否则需要手动设置环境变量
在这里插入图片描述

2. 安装Neo4j

在该网址下,下划寻找安装,安装社区版

官方网址:Neo4j
在这里插入图片描述

解压到本地,其包含的文件如下。
在这里插入图片描述

将其bin文件路径配置到环境变量下,本文示例路径如下。

C:\Users\Administrator\Desktop\neo4j-community-5.17.0-windows\neo4j-community-5.17.0\bin

在这里插入图片描述

之后在命令控制台输入,如果打印出数据库信息则代表安装成功

neo4j.bat console

在这里插入图片描述

然后在浏览器输入,进入如下页面

localhost:7474

在这里插入图片描述

第一次登陆的话,初始账号密码都是neo4j,第2行的Database 空着就行

然后会进入提示修改页码的界面

在这里插入图片描述

修改成功之后跳转到如下界面。
在这里插入图片描述

3. Neo4j数据库的基础操作

3.1 增加节点

在图书库中增主要分位两部分,增加节点和增加关系,首先增加节点,下面给出一个增加节点的基础示例person是这个节点的变量名称,Person为该点所属的类别,是可选的,{name: 'John', age:30}是属性,可以理解成pyhon中的一个键值对的形式,这个没有长度限制可以一直延申。

CREATE (person:Person {name: 'John', age:30})

在顶部的命令提示栏部分输入,上述代码,点右侧的蓝色小三角运行,或者ctrl+enter
在这里插入图片描述

运行结果如下,这里没有爆红就是没报错,然后接下来去查看一下生成的节点。

在这里插入图片描述
点击左侧上方的菜单栏图标。

在这里插入图片描述

然后点这个Person类别标签

在这里插入图片描述
就可以看到如下的一个节点

在这里插入图片描述

鼠标放到节点上,即可在右侧看到该节点对应的属性

在这里插入图片描述

3.2 增加关系

然后是增加一个关系,增加关系之前需要再则更加一个节点

CREATE (n:Person {name: 'Hao', age:20})

在这里插入图片描述

对已经创建的两个节点之间,建立一个联系。
首先查找这两个节点,首先查找一个类别为Person,name为John的节点,命名为a.
然后查找一个类别为Person,name为Hao的节点命名为b
最后用(a)-[:FRIENDS_WITH]->(b)语法建立关系FRIENDS_WITH为关系。

MATCH (a:Person {name: 'John'}), (b:Person {name: 'Hao'})
CREATE (a)-[:FRIENDS_WITH]->(b)

在这里插入图片描述

新创建两个节点同时在两个节点之间建立一个关联,并给关系附上一个属性。这也是一个标准的三元组方式

CREATE (c:Person {name: 'Ying', age:20})-[:TEACHER_WITH{subject:'math'}]->(d:Person {name: 'Chen', age:20})

在这里插入图片描述

3.3 删除节点

首先先创建一个独立节点。

CREATE (n:Person{name:'me'})

在这里插入图片描述

然后是图数据库删除一个节点的操作步骤,查找并删除他,运行删除命令之后节点数量变为4.试图中也发现该节点被删除,需要补充的是图数据库不允许直接删除有关系的节点,如果执行了会报错

MATCH (n:Person{name:"ME"}) DELETE n

在这里插入图片描述

在这里插入图片描述

3.4 删除关系

删除关系不是删除节点,同理也要先搜索这段关系,然后给他一个变量名,然后删除,执行了之后删除了一个关系,关系变为1

MATCH (c:Person {name: 'Ying', age:20})-[r:TEACHER_WITH{subject:'math'}]->(d:Person {name: 'Chen', age:20})
DELETE r                                                                                      

在这里插入图片描述

在这里插入图片描述

3.5 增加或修改节点的属性

例子为修改name属性为ChenPerson节点的age属性从20改到25,先搜索该节点,然后修改它的属性,如果没有该属性则会创建一个新属性然后赋值

MATCH (p:Person {name: 'Chen'})
SET p.age = 25

修改前属性
在这里插入图片描述

运行代码
在这里插入图片描述

修改后的结果
在这里插入图片描述

3.6 删除节点的属性信息

删除的命令为REMOVE,下文中删除Chen的年龄属性。
运行命令效果。

MATCH (p:Person {name: 'Chen'})
REMOVE p.age

在这里插入图片描述

查看节点的属性信息。

在这里插入图片描述

3.7 增加或修改关系的属性

这里我们首先查找(匹配)John和Hao的朋友关系,然后给这段朋友关系添加一个属性。

MATCH (n:Person {name:'John'})-[r:FRIENDS_WITH]->(m:Person {name:'Hao'})
SET r.years = 10
    

在这里插入图片描述

查看该关系的属性信息。

在这里插入图片描述

3.8 删除关系的属性

MATCH (n:Person {name:'John'})-[r:FRIENDS_WITH]->(m:Person {name:'Hao'})
REMOVE r.years

在这里插入图片描述

在这里插入图片描述

3.9 查询节点

查询一个节点

MATCH (n:Person{name:"Chen"}) RETURN n

在这里插入图片描述

3.10 查询关系

如果只查询一个关系,则不会返回视图,只会返回属性表格。

MATCH (n:Person {name:'John'})-[r:FRIENDS_WITH]->(m:Person {name:'Hao'})
RETURN r

在这里插入图片描述

3.11 查询三元组

MATCH (n:Person {name:'John'})-[r:FRIENDS_WITH]->(m:Person {name:'Hao'})
RETURN n,r,m

在这里插入图片描述

查询关系时候只有同时查询关系的两个节点,表示关系的线才会在视图部分显示

在查询的时候也可以用过WHERE等命令进一步限定筛选条件

4.Python 链接 Neo4j

安装py2neo库

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple py2neo

链接代码

from py2neo import Graph

# 连接到Neo4j数据库
graph = Graph("bolt:\\localhost:7687", auth=("neo4j", "passworld"))

propertys = 'Person'
# 增加一个节点
order = f"CREATE (n:{propertys} {{name: 'Father', age:30}})"
# 删除一个节点
# order = "MATCH (n:Person{name:'Father'}) DELETE n"
# 增加一个关系
# order = "MATCH (a:Person {name: 'John'}), (b:Person {name: 'Hao'}),CREATE (a)-[:FRIENDS_WITH]->(b)"
graph.run(order)

# 返回所有节点
nodes = graph.run("MATCH (n) RETURN n")


# 遍历和打印结果
for node in nodes:
    print(node)

几个常用命令

删库跑路,慎用

MATCH (r)
DETACH DELETE r

查询某一类样本的数量

MATCH (n:`Person`)
RETURN count(n) AS Numbers

查找一个节点的所有相关节点,用节点的name查询

MATCH (n)-[r]->(m)
WHERE n.name = "name" or  m.name = "name"
RETURN n, r, m

结束

这是一个简单的入门部分,包括最基础的增删改查工作,反正我网上是没看到觉得比较舒服的,花里胡哨的比较多,写出来分享给大家,如果你看到最后了,那你一定是一个热爱学习的亲,如果有什么不完善的地方,非常欢迎留言交流。

neo4j api neo4j学习资料 neo4j教程neo4j官方API(官方各种API的文档整理).7z │ neo4j数据迁移--初探(一).htm │ neo4j笔记.docx │ neo4j错误码状态码.html │ └─01.neo4j学习博客汇总 │ index.html └─neo4j_cypher │ Cypher(神奇的WITH).html │ cypher_index.html │ Cypher查询语言--Neo4j 综合(四) - divenswu - 博客园.html │ Cypher查询语言--Neo4j中的SQL - 爱上包子 - 博客园.html │ DETACH DELETE n 删除node n ,并删除所有与n相关的关系.html │ Neo4j - NOT IN query.html │ Neo4j CQL - (11)- REMOVE删除 DELETE.html │ Neo4j Cypher 复杂查询详解在之With - 何源浩的博客 - CSDN博客.html │ neo4j 中使用sparql查询.html │ Neo4j 中文社区,致力于 Neo4j 的技术研究。.html │ Neo4j 使用cypher语言进行查询 - MHL - 博客园.html │ Neo4j 第一篇:在Windows环境安装Neo4j - 悦光阴 - 博客园.html │ Neo4j 第三篇:Cypher查询入门 - 悦光阴 - 博客园.html │ Neo4j 第二篇:图形数据库 - 悦光阴 - 博客园.html │ Neo4j 第五篇:批量更新数据 - 悦光阴 - 博客园.html │ Neo4j 第四篇:使用C更新和查询Neo4j - 悦光阴 - 博客园.html │ Neo4J(Cypher语句)初识.html │ Neo4J(Cypher语句)学习 - 赵晓雷的专栏 - CSDN博客.html │ Neo4j_事务&深度遍历.html │ neo4j中的分组查询.html │ Neo4j之Cypher学习总结.html │ NEO4J亿级数据导入导出以及数据更新 - 耶和华靠近伤心的人,拯救灵性痛悔的人 - CS.html │ Neo4j入门点滴(一):Cypher.html │ Neo4j入门点滴(三):用Cypher完善图.html │ Neo4j入门点滴(二):模式与模式匹配.html │ Neo4j入门点滴(五):Windows Shell for Cypher.html │ Neo4j入门点滴(四):Cypher查询优化.html │ Neo4J几种数据导入方式的效率对比 - 何源浩的博客 - CSDN博客.html │ Neo4j模糊查询及分页查询 - c1052981766的专栏 - CSDN博客.html │ neo4j笔记 - Neo4j 中文社区.html │ Neo4j语句 - zhuweiba_321的博客 - CSDN博客.html │ Neo4j语句 - 阿里云.html │ 【程裕强的专栏】大数据学习笔记(1.01^365=37.78,0.99^365=0.025.html │ 五岳之巅-Neo4j入门点滴-博文目录.html │ 关于Neo4j和Cypher批量更新和批量插入优化的5个建议 - 逆水行舟 - CSDN博.html │ 图数据库-Neo4j介绍与Cypher入门.html │ 图数据库之Cypher语言 - 活的洒脱怪我咯的专栏 - CSDN博客.html │ 图数据库之neo4j-jdbc的使用 - 活的洒脱怪我咯的专栏 - CSDN博客.html │ 数据分页处理系列之三:Neo4j图数据分页处理.html │ 暖暖动听.html │ 飘涯 - 简书.html
### Python环境Neo4j安装与配置 #### 安装JDK 为了使Neo4j正常工作,因为其依赖于Java虚拟机(JVM),所以需要先安装Java Development Kit (JDK)。对于希望后续能够支持Spring Boot框架的情况来说,建议至少选择版本为1.8的JDK环境[^1]。 ```bash # 对于Linux用户可以使用如下命令来安装OpenJDK 8 sudo apt-get update && sudo apt-get install openjdk-8-jdk -y ``` 确认已成功安装并设置好JAVA_HOME变量: ```bash java -version echo $JAVA_HOME ``` #### Neo4j服务器端安装 完成上述准备工作之后,接着按照官方指南下载适合操作系统平台对应的Neo4j二进制包,并解压到指定位置。启动服务前需编辑`conf/neo4j.conf`文件调整必要的参数设定,比如内存分配策略等。 #### 配置Python客户端访问Neo4j 为了让Python程序能够连接至本地或远程部署好的Neo4j实例,在项目里引入py2neo库是一个不错的选择。通过pip工具很容易就能搞定这个第三方模块的获取过程[^2]。 ```bash pip install py2neo==4.3.0 ``` 编写一段简单的测试脚本来验证连通性状况: ```python from py2neo import Graph, Node, Relationship graph = Graph("http://localhost:7474", auth=("neo4j", "password")) result = graph.run("MATCH (n) RETURN count(DISTINCT labels(n))").data() print(result) ``` 这段代码尝试建立同本地图数据库之间的会话链接,并执行一条查询语句返回节点标签的数量统计结果。注意替换掉默认用户名密码组合(`neo4j/password`)以匹配实际场景下的安全认证需求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浩浩的科研笔记

这我为您答疑发送资源的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值