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

使用python操作neo4j实例

1. 环境准备

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

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

pip install neo4j

2. 启动Neo4j实例

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

端口:7687

用户名:neo4j

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

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

3. 连接Neo4j数据库

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

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查询语言来创建节点和关系。

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

# 创建节点
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节点及其关系的示例:

# 查询所有的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的年龄:

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

7. 删除数据

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

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

8. 完整示例

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

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数据库进行交互,进行图数据存储与查询。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值