图数据库:neo4j学习笔记

参考资料:neo4j 教程_w3cschool

Springboot集成Neo4j_喝醉的咕咕鸟的博客-CSDN博客

SpringBoot 整合 Neo4j_springboot neo4j_懒小猿的博客-CSDN博客

图数据库Neo4j实战(全网最详细教程)_neo4j使用教程_星川皆无恙的博客-CSDN博客

代码片段_知识图谱Neo4j Cypher查询语言详解

Windows安装

1、桌面版安装

下载地址:Neo4j Desktop Download | Free Graph Database Download

输入个人信息后,会有一个激活码,保存下来,后面要用!

直接默认安装,安装位置可改,第一次打开时会让你输入刚刚获取到的激活码。

2、zip安装

下载地址:Neo4j Deployment Center - Graph Database & Analytics

(此处下载是community版)

下载完成后,将压缩包解压到一个文件夹中

环境配置

新建变量名写:NEO4J_HOME, 变量值为刚刚的文件夹路径;

Path后面添加上路径:%NEO4J_HOME%\bin。

启动

在bin路径下打开cmd,输入:neo4j.bat console

出现以下为成功

若启动时JDK版本报错,可以安装指定版本JDK,并需要改下bin目录下的neo4j.bat, 把set "JAVA_HOME=XXXX"加入进去

访问数据

在浏览器中输入:http://localhost:7474/

Usernameneo4j (这个用户名好像是不可以修改的)
Password 默认是neo4j,zip版本第一次进入会提示你修改。

参考

篇一:Neo4j图形数据库的安装与环境配置(普通版与Desktop版)_neo4j desktop和neo4j区别_小赵de碎星采摘馆的博客-CSDN博客

图数据库Neo4j下载、安装_neo4j3.5下载_Golden-Star的博客-CSDN博客

Window下Neo4j安装教程

介绍

图是一组节点和连接这些节点的关系。图形数据存储在节点和关系在属性的形式。属性是键值对表示数据。Neo4j图数据库主要有以下组成元素:节点、属性、关系、标签

节点

节点(Node)是图数据库中的一个基本元素,用来表示一个实体记录。

1、节点是主要的数据元素,节点通过关系连接到其他节点。节点可以具有一个或多个属性(即,存储为键/值对的属性)。

2、节点有一个或多个标签,用于描述其在图表中的作用。

属性

属性(Property)是用于描述图节点和关系的键值对。

1、属性是命名值,其中名称(或键)是字符串属性可以被索引和约束

2、可以从多个属性创建复合索引

关系

关系(Relationship)同样是图数据库的基本元素。关系就是用来连接两个节点,,其始端和末端都必须是节点,关系不能指向空也不能从空发起。关系和节点一样可以包含多个属性,但关系只能有一个类型(Type) 。

1、关系连接两个节点关系是方向性的节点可以有多个甚至递归的关系。

2、关系可以有一个或多个属性(即存储为键/值对的属性)

3、基于方向性,Neo4j关系被分为两种主要类型:单向关系、双向关系

标签

标签(Label)将一个公共名称与一组节点或关系相关联, 节点或关系可以包含一个或多个标签。 我们可以为现有节点或关系创建新标签, 我们可以从现有节点或关系中删除标签。

1、标签用于将节点分组一个节点可以具有多个标签对标签进行索引。

2、以加速在图中查找节点本机标签索引针对速度进行了优化。

cyher

Neo4j的操作语言称为cyher,相当于关系数据库sql。

节点

Cypher 采用一对圆括号 () 来表示节点,如 (n:角色) 表示一个 角色 节点,n 是变量名 ,供命令执行时用 n 来访问这个节点,在命令执行完毕后就无法使用了。同时单独的 () 表示一个匿名节点 ,在匹配时表示匹配所有节点。

属性

(n:角色{name:'郭靖'}) ,{}中包含的name:'郭靖'就为一组属性键值对。

关系

--表示无方向的关系

--> 表示有方向的关系

-[r]-> 则给关系赋予一个变量名r,方便对这个关系进行操作

-[r:配偶]-> 匹配关系为 配偶 的类型

关系路径长度匹配

在关系中,允许匹配特定路径长度的内容,如:

  • (n)-[*2]->(m) 表示关系数量为 2 的 3 个节点的匹配, 等价于 (a)-[]->()-[]->(b)
  • (n)-[*2..4]->(m) 匹配路径长度为 2 到 4 之间的路径
  • (n)-[*2..]->(m) 匹配路径长度大于 2 的路径
  • (n)-[*..4]->(m) 匹配路径长度小于 4 的路径
  • (n)-[*]->(m) 匹配任意长度的路径

列表

Cypher 支持列表操作,通过 [] 来创建列表。

语法

cypher语法请参考:Cypher Cheat Sheet - Neo4j Documentation Cheat Sheet

CREATE

​我们应该使用此标签名称来访问节点详细信息。​

MERGE 命令是 CREATE 命令和 MATCH 命令的组合。 MERGE 在图中搜索给定模式,如果存在,则返回结果,如果不存在,则创建并返回结果。

Cobol 复制代码
1、创建一个没有属性的节点
CREATE (节点名称:节点标签名称)

2、创建一个有属性的节点
CREATE (节点名称:节点标签名称{ 属性名称1:属性值,属性名称2:属性值,属性名称3:属性值 })

3、创建两个节点和关系属性
CREATE(节点名称1:节点标签名称1{属性})-[关系名称:关系标签名称{属性}]->(节点名称2:节点标签名称2{属性})

MATCH

MATCH 命令用于从数据库中获取节点,关系的信息,类似于 SQL 中的 SELECT。RETURN 则是在 MATCH 搜索完成后返回数据,因此 MATCH 必须与 RETURN 同时使用。

ptional match类似于 match,不同之处在于 optional match 在匹配不到内容时返回 null 方便查询继续进行,而 match 直接返回查询无结果

Cobol 复制代码
1、获取有关节点
match (变量名:节点的标签名称) return n

MATCH (变量名:节点的标签名称 {属性名称1:属性值,属性名称2:属性值}) RETURN 变量名

2、使用两个现有节点:节点标签名称1和节点标签名称2创建与属性的关系
MATCH (变量名1:节点标签名称1),(变量名2:节点标签名称2)
CREATE (变量名1)-[关系名称:关系标签名称{属性}]->(变量名2)
RETURN 关系名称

RETURN

Cobol 复制代码
RETURN 变量名,变量名.属性名称1

WHERE

WHERE 可以结合函数 exists() ,字符串匹配 starts with,ends with,contains,逻辑匹配 in,not,and,or 和正则表达式匹配进行更加精细的匹配,正则表达式的语法为 =~ 'regexp'。

Cobol 复制代码
 where 变量名.属性名称=属性值

DELETE

从数据库永久删除节点及其关联的属性。

Cobol 复制代码
DELETE 变量名列表

REMOVE

删除节点或关系的标签或属性

Cobol 复制代码
DELETE 变量名.属性名称
DELETE 变量名.标签名称
例如:
match (n:角色) where n.name='金轮法王' remove n.from return n
match (n:角色)-[r]-() where n.name='金轮法王' delete n,r
清空数据库:match (n) optional match (n)-[r]-() delete n,r

SET

用于给现有节点或关系添加新属性,因此,SET 需要配合 MATCH 使用。

Cobol 复制代码
SET 变量名.属性名= 属性值
例如:match (n:角色) where n.name='杨过' set n.nickname='西狂' return n
相关推荐
言之。1 小时前
Django中的软删除
数据库·django·sqlite
汇能感知2 小时前
摄像头模块在运动相机中的特殊应用
经验分享·笔记·科技
阿巴Jun2 小时前
【数学】线性代数知识点总结
笔记·线性代数·矩阵
茯苓gao2 小时前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
是誰萆微了承諾3 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang
阿里嘎多哈基米3 小时前
SQL 层面行转列
数据库·sql·状态模式·mapper·行转列
抠脚学代码3 小时前
Ubuntu Qt x64平台搭建 arm64 编译套件
数据库·qt·ubuntu
jakeswang3 小时前
全解MySQL之死锁问题分析、事务隔离与锁机制的底层原理剖析
数据库·mysql
DKPT3 小时前
Java内存区域与内存溢出
java·开发语言·jvm·笔记·学习
aaaweiaaaaaa3 小时前
HTML和CSS学习
前端·css·学习·html