Neo4j图数据库的安装与基本增删改查

简介: Neo4j图数据库的安装与基本增删改查

安装启动

下载对应平台文件(社区版 neo4j-community-3.5.1)

https://neo4j.com/


neo4j-community-3.5.2-unix:

https://neo4j.com/artifact.php?name=neo4j-community-3.5.2-unix.tar.gz


解压 进入目录

$ ./neo4j start  # 启动
$ ./neo4j stop  # 停止

界面:http://localhost:7474/

首次使用:用户名、密码默认为 neo4j


两种方法清空数据库:

1、Cypher 语句:

match (n) detach delete n

2、删出文件


1、停掉服务
2、删除 graph.db 目录
3、重启服务

重要概念

1、节点

2、关系

3、属性


增删改查

1、添加4个节点

create(student:Student{id:1, name: "李雷"});
create(student:Student{id:2, name: "韩梅梅"});
create(teacher:Teacher{id:1, name: "仓老师"});
create(school:School{id: 1, title: "山东蓝翔"});

小写student 可以理解为面向对象的实体

大写Student 可以理解为面向对象的类

image.png


2、添加3个关系

match(s:Student{id:1}),(t:Teacher{id:1}) create (t)-[r:教授]->(s);
match(s:Student{id:2}),(t:Teacher{id:1}) create (t)-[r:教授]->(s);
match(s:School{id:1}),(t:Teacher{id:1}) create (t)-[r:就职于]->(s);

image.png

3、更新节点 老师改名字了


match(t:Teacher) 
where t.id=1 
set t.name="小泽老师"

4、删除节点 李雷被开除了


match(s:Student{id: 1}) 
detach delete s;

5、删除关系 小泽老师去别的班级上课了


match (t:Teacher)-[r:教授]->(s:Student) 
where t.id=1 and s.id=2 
delete r

6、索引操作

查看所有索引 
:schema
创建索引
create index on:Student(name)
删除索引
drop index on:Student(name)
创建唯一索引
create constraint on (s:Teacher) assert s.name is unique
删除唯一索引
drop constraint on (s:Teacher) assert s.name is unique

修改关系名称

MATCH (p:Person)-[r:投资]->(c:Company)
CREATE (p)-[r2:Invest{name:"投资"}]->(c)
// copy properties, if necessary
SET r2 = r
WITH r
DELETE r

https://stackoverflow.com/questions/22670369/neo4j-cypher-how-to-change-the-type-of-a-relationship


事务操作


from py2neo import Graph, Node, Relationship

g = Graph()
tx = g.begin()
a = Node("Person", name="Alice")
tx.create(a)
b = Node("Person", name="Bob")
ab = Relationship(a, "KNOWS", b)
tx.create(ab)
tx.commit()

批量导入

movies2.csv.

movieId:ID;title;year:int;:LABEL
tt0133093;'The Matrix';1999;Movie
tt0234215;'The Matrix Reloaded';2003;Movie|Sequel
tt0242653;'The Matrix Revolutions';2003;Movie|Sequel

actors2.csv.


Python多维/嵌套字典数据无限遍历的实现

pdf


personId:ID;name;:LABEL
keanu;'Keanu Reeves';Actor
laurence;'Laurence Fishburne';Actor
carrieanne;'Carrie-Anne Moss';Actor

roles2.csv.

:START_ID;role;:END_ID;:TYPE
keanu;'Neo';tt0133093;ACTED_IN
keanu;'Neo';tt0234215;ACTED_IN
keanu;'Neo';tt0242653;ACTED_IN
laurence;'Morpheus';tt0133093;ACTED_IN
laurence;'Morpheus';tt0234215;ACTED_IN
laurence;'Morpheus';tt0242653;ACTED_IN
carrieanne;'Trinity';tt0133093;ACTED_IN
carrieanne;'Trinity';tt0234215;ACTED_IN
carrieanne;'Trinity';tt0242653;ACTED_IN
The call to neo4j-admin import would look like this:

导入指令

$ bin/neo4j-admin import 
--nodes import/movies2.csv 
--nodes import/actors2.csv
--relationships import/roles2.csv 
--delimiter ";"
--array-delimiter "|" 
--quote "'"

配置外网访问

conf\neo4j.conf

#dbms.connector.http.listen_address=:7474
dbms.connector.http.listen_address=0.0.0.0:7474
#dbms.connector.bolt.listen_address=:7687
dbms.connector.bolt.listen_address=0.0.0.0:7687

配置环境变量:


#neo4j
export NEO4J_HOME=<neo4j_path>
export PATH=$PATH:$NEO4J_HOME/bin

参考:

Mac 搭建Neo4j环境
neo4j 初步认识和使用
Neo4j的简单搭建与使用
Neo4j 简单入门
neo4j----创建索引
https://neo4j.com/docs/operations-manual/current/tutorial/import-tool/
配置Neo4j服务器允许远程访问

相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
相关文章
|
21天前
|
Java 关系型数据库 MySQL
"解锁Java Web传奇之旅:从JDK1.8到Tomcat,再到MariaDB,一场跨越数据库的冒险安装盛宴,挑战你的技术极限!"
【8月更文挑战第19天】在Linux上搭建Java Web应用环境,需安装JDK 1.8、Tomcat及MariaDB。本指南详述了使用apt-get安装OpenJDK 1.8的方法,并验证其版本。接着下载与解压Tomcat至`/usr/local/`目录,并启动服务。最后,通过apt-get安装MariaDB,设置基本安全配置。完成这些步骤后,即可验证各组件的状态,为部署Java Web应用打下基础。
33 1
|
24天前
|
存储 关系型数据库 MySQL
2022年最新最详细的MYSQL数据库安装(详细图解过程、毕成功)
这篇文章提供了2022年最新最详细的MYSQL数据库安装教程,包括下载、安装步骤图解、初始化配置文件创建、登录密码修改注意事项,并分享了作者在安装过程中遇到的常见问题及其解决方法。
2022年最新最详细的MYSQL数据库安装(详细图解过程、毕成功)
|
16天前
|
关系型数据库 MySQL Shell
MySQL数据库一键安装脚本,适合任何版本
MySQL数据库一键安装脚本,适合任何版本
22 2
|
17天前
|
关系型数据库 Linux Shell
跟我一起来学国内排名NO.1的开源数据库安装
跟我一起来学国内排名NO.1的开源数据库安装
24 0
跟我一起来学国内排名NO.1的开源数据库安装
|
21天前
|
关系型数据库 MySQL 数据库
MySQL数据库安装——zip压缩包形式
MySQL数据库安装——zip压缩包形式
36 2
|
24天前
|
SQL 数据库连接 API
ThinkPHP6实现增删改查接口
ThinkPHP6实现增删改查接口
27 1
|
3天前
|
关系型数据库 Java MySQL
"解锁Java Web传奇之旅:从JDK1.8到Tomcat,再到MariaDB,一场跨越数据库的冒险安装盛宴,挑战你的技术极限!"
【9月更文挑战第6天】在Linux环境下安装JDK 1.8、Tomcat和MariaDB是搭建Java Web应用的关键步骤。本文详细介绍了使用apt-get安装OpenJDK 1.8、下载并配置Tomcat,以及安装和安全设置MariaDB(MySQL的开源分支)的方法。通过这些步骤,您可以快速构建一个稳定、高效的开发和部署环境,并验证各组件是否正确安装和运行。这为您的Java Web应用提供了一个坚实的基础。
12 0
|
24天前
|
XML 数据库 数据格式
Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】
这篇文章是Spring5框架的实战教程的终结篇,介绍了如何使用注解而非XML配置文件来实现JdbcTemplate的数据库操作,包括增删改查和批量操作,通过创建配置类来注入数据库连接池和JdbcTemplate对象,并展示了完全注解开发形式的项目结构和代码实现。
Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】
|
24天前
|
SQL XML Java
Spring5入门到实战------12、使用JdbcTemplate操作数据库(增删改查)。具体代码+讲解 【上篇】
这篇文章是Spring5框架的实战教程,详细讲解了如何使用JdbcTemplate进行数据库的增删改查操作,包括在项目中引入依赖、配置数据库连接池、创建实体类、定义DAO接口及其实现,并提供了具体的代码示例和测试结果,最后还提供了完整的XML配置文件和测试代码。
Spring5入门到实战------12、使用JdbcTemplate操作数据库(增删改查)。具体代码+讲解 【上篇】
|
12天前
|
开发工具 数据安全/隐私保护 索引
LDAP学习笔记之二:389-DS(RHDS) 增删改查基本操作
LDAP学习笔记之二:389-DS(RHDS) 增删改查基本操作
下一篇
DDNS