neo4j数据库实战

neo4j数据库

neo4j数据库安装

JDK安装https://www.oracle.com/java/technologies/javase-downloads.html
Neo4j安装https://neo4j.com/download-center/

配置JDK和neo4j的环境变量

  1. 下载.exe文件然后安装
  2. 把jdk安装路径的bin文件夹写入到环境变量中
  3. 下载neo4j社区版本(免费)

    解压后把neo4j的bin文件夹也添加到环境变量中

启动neo4j

cmd命令行输入neo4j.bat console

在浏览器打开 http://localhost:7474

  1. 登录:使用默认账号和密码进行登录。默认账号为 neo4j,密码也为 neo4j。
    Protocol要设置为http://
  2. 登录成功

neo4j增删改查

增:
  1. 增加一个节点
python 复制代码
CREATE(n:Person{name:'我',age:31})
  1. 带有关系属性
bash 复制代码
CREATE (p:Person{name:"小弟",age:"31"})-[:钓鱼{金额:1000}]->(n:Person{name:"大哥",age:"35"})
bash 复制代码
CREATE (n:Person{name:'zzz',age:11})
 MATCH (n:Person{name:'zzz'}) DELETE n
  1. 删除关系
bash 复制代码
 MATCH (p:Person{name:"小弟",age:"31"})-[f:钓鱼]->(n:Person{name:"大哥",age:"35"}) DELETE f 
  1. 加上标签
bash 复制代码
MATCH (t:Person) WHERE elementId(t)="4:74f28f45-2057-47f2-9118-a8e75e15275c:173" SET t:好人 RETURN t
  1. 加上属性
bash 复制代码
MATCH (a:好人) WHERE elementId(a)='4:74f28f45-2057-47f2-9118-a8e75e15275c:173' SET a.战斗力=200 RETURN a
  1. 修改属性
bash 复制代码
MATCH (a:好人) WHERE elementId(a)='4:74f28f45-2057-47f2-9118-a8e75e15275c:173' SET a.战斗力=500 RETURN a
bash 复制代码
MATCH (p:Person)-[:钓鱼]->(n:Person) RETURN p,n
快速清空数据库
bash 复制代码
MATCH (n) DETACH DELETE n

使用python操作neo4j实例

1. 环境准备

首先,确保你已经安装了Neo4j数据库并启动了它。如果你还没有安装,可以参考Neo4j官网上的安装指南。

在Python中,我们可以使用neo4j官方提供的neo4j Python驱动来与Neo4j数据库进行交互。可以使用以下命令来安装这个库:

bash 复制代码
pip install neo4j

2. 启动Neo4j实例

确保Neo4j数据库已经启动,并能够通过浏览器访问。默认情况下,Neo4j使用以下配置:

端口:7687

用户名:neo4j

密码:neo4j(初次启动时,你需要设置密码)

你可以通过访问 http://localhost:7474 在浏览器中打开Neo4j的Web界面。

3. 连接Neo4j数据库

在Python中,我们使用neo4j库中的GraphDatabase类来连接Neo4j数据库。以下是连接Neo4j实例的基本代码:

bash 复制代码
from neo4j import GraphDatabase

# 连接到Neo4j数据库
uri = "bolt://localhost:7687"  # Neo4j实例地址
username = "neo4j"  # 用户名
password = "your_password"  # 密码

# 创建数据库连接
driver = GraphDatabase.driver(uri, auth=(username, password))

# 获取一个会话
session = driver.session()

4. 创建节点和关系

在Neo4j中,数据是通过节点(Node)和关系(Relationship)来存储的。我们可以使用Cypher查询语言来创建节点和关系。

以下是一个创建节点和关系的示例:

bash 复制代码
# 创建节点
session.run("CREATE (a:Person {name: 'Alice', age: 29})")
session.run("CREATE (b:Person {name: 'Bob', age: 34})")

# 创建关系
session.run("""
    MATCH (a:Person), (b:Person)
    WHERE a.name = 'Alice' AND b.name = 'Bob'
    CREATE (a)-[:KNOWS]->(b)
""")

5. 查询数据

你可以使用Cypher查询语言来查询节点和关系。以下是一个查询所有Person节点及其关系的示例:

bash 复制代码
# 查询所有的Person节点
result = session.run("MATCH (p:Person) RETURN p.name AS name, p.age AS age")

# 打印查询结果
for record in result:
    print(f"Name: {record['name']}, Age: {record['age']}")

6. 更新数据

如果你需要更新一个节点或关系,可以使用SET语句。例如,我们可以更新Alice的年龄:

bash 复制代码
# 更新节点属性
session.run("MATCH (a:Person {name: 'Alice'}) SET a.age = 30")

7. 删除数据

如果你需要删除节点或关系,可以使用DELETE语句。以下是删除节点的示例:

bash 复制代码
# 删除节点和关系
session.run("""
    MATCH (a:Person {name: 'Alice'})-[r]->(b)
    DELETE r, a
""")

8. 完整示例

以下是一个完整的示例,展示了如何创建节点、查询节点、更新节点和删除节点。

bash 复制代码
from neo4j import GraphDatabase
# 连接Neo4j数据库
uri = "bolt://localhost:7687"
username = "neo4j"
password = "your_password"
driver = GraphDatabase.driver(uri, auth=(username, password))

def create_data(session):
    # 创建节点
    session.run("CREATE (a:Person {name: 'Alice', age: 29})")
    session.run("CREATE (b:Person {name: 'Bob', age: 34})")

    # 创建关系
    session.run("""
        MATCH (a:Person), (b:Person)
        WHERE a.name = 'Alice' AND b.name = 'Bob'
        CREATE (a)-[:KNOWS]->(b)
    """)

def query_data(session):
    # 查询所有的Person节点
    result = session.run("MATCH (p:Person) RETURN p.name AS name, p.age AS age")
    for record in result:
        print(f"Name: {record['name']}, Age: {record['age']}")

def update_data(session):
    # 更新Alice的年龄
    session.run("MATCH (a:Person {name: 'Alice'}) SET a.age = 30")

def delete_data(session):
    # 删除Alice节点
    session.run("""
        MATCH (a:Person {name: 'Alice'})-[r]->(b)
        DELETE r, a
    """)

# 获取一个会话
session = driver.session()

# 创建数据
create_data(session)

# 查询数据
print("Before update:")
query_data(session)

# 更新数据
update_data(session)

# 查询更新后的数据
print("\nAfter update:")
query_data(session)

# 删除数据
delete_data(session)

# 查询删除后的数据
print("\nAfter deletion:")
query_data(session)

# 关闭会话
session.close()

# 关闭数据库连接
driver.close()

9. 小结

在本文中,我们介绍了如何使用Python操作Neo4j,包括如何连接数据库、创建节点和关系、查询、更新和删除数据。通过这些操作,你可以在Python中方便地与Neo4j数据库进行交互,进行图数据存储与查询。

相关推荐
笨蛋少年派5 分钟前
Maxwell数据变更捕获工具简介
数据库·mysql
谷新龙00112 分钟前
pg_clickhouse插件,在postgresql中借助clickhouse借用OLAP能力
数据库·clickhouse·postgresql
Hello.Reader14 分钟前
Flink SQL 的 SET 语句会话参数配置与快速自检(SQL CLI 实战)
数据库·sql·flink
老华带你飞22 分钟前
工会管理|基于springboot 工会管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·spring
自在极意功。22 分钟前
MyBatis配置文件详解:environments、transactionManager与dataSource全面解析
java·数据库·tomcat·mybatis
紫金桥软件22 分钟前
紫金桥软件 | 赋能工业数字化转型
数据库·国产化
Navicat中国26 分钟前
Navicat x 达梦技术指引 | 模型转换
数据库·达梦·navicat·概念模型·物理模型·逻辑模型·模型转换
邂逅星河浪漫27 分钟前
【MySQL 事务】详细介绍+实例
数据库·mysql·事务
tianyuanwo29 分钟前
RPM数据库锁竞争:原理、诊断与根治方案
数据库·rpm·bdb·命令挂起
TG:@yunlaoda360 云老大32 分钟前
如何评估华为云国际站代理商跨境合规要求?
大数据·数据库·华为云·云计算