Neo4j学习笔记

主要目的:使用java来封装通用的neo4j查询接口

图数据库并非指存储图片的数据库,而是以图数据结构存储和查询数据. 图数据库是基于图论实现的一种NoSQL数据库,其数据存储结构和数据查询方式都是以图论为基础,图数据库主要用于存储更多的连接数据.

NoSQl数据库大致分为四类:

1.键值(key/value)数据库

2.列存储数据库

3.文档型数据库

4.图数据库 Neo4j 由节点和关系组成.

下载地址:下载地址:https://neo4j.com/download-center/

安装方式:

Neo4j Enterprise Server (企业版,支持分布式,试用30天)
Neo4j Community Server (社区版,免费的)
Neo4j Desktop (桌面版)

这里个人学习用的是linux版本,注意点是:4.0的版本对应的jdk是jdk11,而生产现在大多数还是 jdk8,因此下载3.0版本的 下载完上传至 /opt/software/Neo4j, 解压
tar -zxvf neo4j-community-3.5.30-unix.tar.gz -C /opt/module/
解压完毕之后进入conf目录,修改conf文件 修改的地方有两个,一个是
#dbms.connectors.default_listen_address=0.0.0.0
放开这一行,因为默认只能使用本地连接,不放开这一行,web端打不开 第二处是
#dbms.connectors.default_advertised_address=localhost
注释上面这行,改成
dbms.connectors.default_advertised_address=192.168.70.102
上面最后填你的主机ip 修改完成 启动
bin/neo4j console
在浏览器中访问
http://192.168.70.102:7474
使用用户名neo4j和默认密码neo4j进行连接,然后会提示更改密码。
Neo4j Browser是开发人员用来探索Neo4j数据库、执行Cypher查询并以表格或图形形式查看结果的工 具。

使用简介

1.它是Neo4j图形数据库的查询语言。
2.它是一种声明性模式匹配语言
3.它遵循SQL语法。
4.它的语法是非常简单且人性化、可读的格式。

CQL命令 用法
create 创建节点,关系和属性
match 检索有关节点,关系和属性数据
return 返回查询结果
where 提供条件过滤检索数据
delete 删除节点和关系
remove 删除节点和关系的属性
order by 排序检索数据
set 添加或者更新标签

"(fox)<-[:knows]-(周瑜)-[:knows]->(诸葛)-[:knows]->(fox)"
() 表示节点
fox 表示节点的属性
[] 表示关系
:knows 表示关系的属性
-->表示关系的走向
以下是图片

常用命令

(https://neo4j.com/docs/cypher-manual/3.5/clauses/ "常用命令")

LOAD CSV

注意:在浏览器中敲命令时,换行是shfit+enter键

从csv中加载数据 将csv拷贝到%NEO4J_HOME%/import目录 我这里是/opt/moudle/neo4j-community-3.5.30下面
load csv from 'file:///西游记.csv' as line create (:西游{name:line[0],tail:line[1],label:line[3]})
如下图 ![image](https://img2020.cnblogs.com/blog/2654614/202112/2654614-20211220162257718-545522979.jpg)
西游记.csv里面内容如下图所示

image

CREATE 创建

create语句是创建模型语句用来创建数据模型
创建节点

image
创建关系

Neo4j图数据库遵循属性图模型来存储和管理其数据。 根据属性图模型,关系应该是定向的。 否则,Neo4j将抛出一个错误消息。 基于方向性,Neo4j关系被分为两种主要类型。
单向关系
双向关系

1.使用新节点创建关系
create (n:person {name:'杨戬'})-[r:`师傅`]->(m:person {name:'玉鼎真人'}) return type(r)
2.使用已知节点创建带属性的关系
match (n:person {name:'沙僧'}),(m:person{name:'唐僧'}) create (n)-[r:`师傅`{relation:'师傅'}]->(m) return r
3.检索关系节点的详细信息 match (n:person)-[r]-(m:person) return n,m
创建全路径

image
MTACH查询

Neo4j CQL MATCH命令用于
1.从数据库获取有关节点和属性的数据 2.从数据库获取有关节点,关系和属性的数据

image

RETURN返回
image
WHERE子句
image
DELETE删除

Neo4j使用CQL DELETE子句
删除节点。
删除节点及相关节点和关系。

image
REMOVE删除

有时基于客户端要求,我们需要向现有节点或关系添加或删除属性。我们使用Neo4j CQL REMOVE子句
1.来删除节点或关系的现有属性。
2.删除节点或关系的标签.
3.删除节点或关系的属性.

image

SET子句

image

ORDER BY排序

image

UNION子句

image

LIMIT和SKIP子句

image

NULL值
image

IN操作符

image

INDEX索引

image

UNIQUE约束

image

UNIQUE约束

image

常用函数

函数 用法
String 字符串 它们用于使用String字面量
Aggregation 聚合 它们用于对CQL查询结果执行一些聚合操作
Relationship 关系 他们用于获取关系的细节,如startnode,endnode等
字符串函数

与SQL一样,Neo4J CQL提供了一组String函数,用于在CQL查询中获取所需的结果。

功能 描述
UPPER 它用于将所有字母更改为大写字母
LOWER 它用于将所有字母改为小写字母
SUBSTRING 它用于获取给定String的子字符串
REPLACE 它用于替换一个字符串的子字符串

image

AGGREGATION聚合

image
image

关系函数
image

功能 描述
STARTNODE 它用于知道关系的开始节点
ENDNODE 它用于知道关系的结束节点
ID 它用于知道关系的ID
TYPE 它用于知道字符串表示中的一个关系的TYPE

image

neo4j-admin使用

image
image

利用CQL构建明星关系图谱

image

posted @ 2021-12-21 15:03  肖文刚  阅读(429)  评论(0)    收藏  举报