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


    Neo4j安装教程🚀

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


    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
    
    • 1

    在这里插入图片描述

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

    neo4j.bat console
    
    • 1

    在这里插入图片描述

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

    localhost:7474
    
    • 1

    在这里插入图片描述

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

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

    在这里插入图片描述

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

    3. Neo4j数据库的基础操作

    3.1 增加节点

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

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

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

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

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

    在这里插入图片描述

    然后点这个Person类别标签

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

    在这里插入图片描述

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

    在这里插入图片描述

    3.2 增加关系

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

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

    在这里插入图片描述

    对已经创建的两个节点之间,建立一个联系。
    首先查找这两个节点,首先查找一个类别为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)
    
    • 1
    • 2

    在这里插入图片描述

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

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

    在这里插入图片描述

    3.3 删除节点

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

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

    在这里插入图片描述

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

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

    在这里插入图片描述

    在这里插入图片描述

    3.4 删除关系

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

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

    在这里插入图片描述

    在这里插入图片描述

    3.5 增加或修改节点的属性

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

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

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

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

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

    3.6 删除节点的属性信息

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

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

    在这里插入图片描述

    查看节点的属性信息。

    在这里插入图片描述

    3.7 增加或修改关系的属性

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

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

    在这里插入图片描述

    查看该关系的属性信息。

    在这里插入图片描述

    3.8 删除关系的属性

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

    在这里插入图片描述

    在这里插入图片描述

    3.9 查询节点

    查询一个节点

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

    在这里插入图片描述

    3.10 查询关系

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

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

    在这里插入图片描述

    3.11 查询三元组

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

    在这里插入图片描述

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

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

    4.Python 链接 Neo4j

    安装py2neo库

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

    链接代码

    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    几个常用命令

    删库跑路,慎用

    MATCH (r)
    DETACH DELETE r
    
    • 1
    • 2

    查询某一类样本的数量

    MATCH (n:`Person`)
    RETURN count(n) AS Numbers
    
    • 1
    • 2

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

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

    结束

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

  • 相关阅读:
    docker安装Prometheus+Grafana监控系统(SpringBoot集成监控)
    VMP3.6的反调试和反虚拟机
    IP属地如何高效率识别
    webssh —— 浏览器上的终端
    AN动画基础——父子级关系
    威海站题目和战术失误
    STP生成树协议详解
    计算机科学导论
    Allegro如何制作routekeepin操作指导
    【开工大吉】推荐4款开源、美观的WPF UI组件库
  • 原文地址:https://blog.csdn.net/chrnhao/article/details/136475449