目录
什么是Neo4j数据库
如何部署Neo4j
o一、安装JDK
o
1.下载安装包
2.找到下载好的JDK安装文件
3.在windows机器的任意盘符下创建安装目录
4.双击.exe的安装文件进行安装
5.配置环境变量
o二、配置Neo4j
o
1.下载安装包
2.将压缩包解压
3.配置环境变量
4.启动数据库
5.打开neo4j的浏览器端
什么是Neo4j数据库
先看一下百度百科对Neo4j的介绍:
Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。
个人理解:Neo4j是一个图数据库,它不同于之前数据库课上学的,以表格形式存储数据的数据库,图数据库使用顶点,边,属性来存储数据。
如何部署Neo4j
一、安装JDK
链接:https://pan.baidu.com/s/1y3qpu1TOnk2ggVZCgvwIXQ
提取码:azw9
1.下载安装包
注意:下面下载的版本为Java SE 11(LTS),安装更早的版本,在后面配置数据库的时候会报错
下载
①点击下载:
②勾选,进行下一步:
③进入登录界面
输入用户名、密码。无账号注册一个(仅仅需要登陆一下即可)
④下载
2.找到下载好的JDK安装文件
3.在windows机器的任意盘符下创建安装目录
主要是不想装在C盘里,自己随便找个路径
我的安装路径:D:\Program Files (x86)\Java\jdk-12.0.8
4.双击.exe的安装文件进行安装
点击下一步
更换自己的安装路径
正在安装
安装完成,可以关闭了
5.配置环境变量
新建JAVA_HOME(值是自己的安装路径)
新建CLASSPATH
值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
在系统变量中的Path后面追加
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
验证是否安装成功
按快捷键 win+R
输入java -version 如果是提示其他版本,把路径上移,说白了就操作系统通过环境变量来找软件
安装成功
二、配置Neo4j
1.下载安装包
下载
链接:https://pan.baidu.com/s/1BJ6-YyojJ5Phuq6yUYeQYw
提取码:k8yz
2.将压缩包解压
我的路径 D:\Neo4j
解压结果:
个人理解:以后所有对数据库的操作,都作用在这个文件夹上面
3.配置环境变量
新建NEO4J_HOME(值是自己的安装路径)
在系统变量中的Path后面追加
%NEO4J_HOME%\bin
4.启动数据库
右键任务栏的”开始键”
点击Windows PowerShell(管理员)
切到自己的数据库文件夹上
输入neo4j.bat console 启动数据库
5.打开neo4j的浏览器端
在浏览器中输入:http://localhost:7474/(上图倒数第二行最后)
第一次登录的界面 用户名: neo4j 密码: neo4j
第一次登录强制要求修改初始密码,设置自己的密码
成功打开,以后再用浏览器进入数据库,直接是下图界面
点击左上角,可以看到现在数据库是空的,没有任何数据
类型 符号
节点 小括号( )
关系 中括号[ ]
属性 大括号{ }
在实体中,属性用大括号的方式给出,但是访问时直接用点号即可。
Create操作:
1、创建主人公节点Jennifer:
create (host:Person{name:“Jennifer”}) return host
2、创建朋友Mark节点:
create(friend:Person{name:‘Mark’}) return friend
3、创建朋友关系:
为什么要用两个match再创建呢,因为这样是先查到两个节点,再在两个节点之间创建关系,但是如果直接用create(例如下面这样),就会重新创建两个新的节点。
match (host:Person{name:‘Jennifer’})
match(friend:Person{name:‘Mark’})
create (host)-[rel:IS_FRIEND_WITH]->(friend)
删除操作:delete 节点或者关系
他不允许我们删除一个带有关系的节点,但是可以用detach delete来删除一个节点以及这个节点连接的所有关系。
cql清空删除
match (n) detach delete n
删除关系:
Match (:Person{name:’Jennifer’})-[r:IS_FRIEND_WITH]->(Person{name:’Mark’})
delete r
删除节点:
match (p:Person{name:‘Mark’}) delete p
删除phone标签的所有节点和关系
match (n:phone) detach delete n
删除属性的两种方式:remove、set to null
match (p:Person{name:‘Kitty’}) remove p.name return p
match (p:Person{name:‘Jennifer’}) set p.birthday=null 原因:Neo4j不保存空值
查询:
查询所有节点:
match(n) return n
查询某个节点:
match(host:Person) return host
查询某个属性的节点:
match(host:Person) where host.name=“Romeo” return host
修改或者更新操作-set 用来增加、删除、修改属性
增加Jennifer节点的生日属性:
match (host:Person{name:‘Jennifer’})
set host.birthday = ‘2020-1-1’
return host
节点属性修改:
match (host:Person{name:‘Jennifer’})
set host.birthday = ‘20202-2’
return host
关系属性修改:增加服役的时间,2018,属性用大括号以键值对的形式呈现,但是节点访问时可以直接用点号访问。
match (:Person{name:‘Jennifer’})-[rel:WORKS_FOR]->(:Company{name:‘Neo4j’})
set rel.stary_year = ‘year:2018’ return rel
用融合Merge防止数据复制
在节点上使用Merge:
merge (p:Person{name:‘Mark’}) return p
Merge 关系:
MATCH (j:Person {name: ‘Jennifer’})
MATCH (m:Person {name: ‘Mark’})
MERGE (j)-[r:IS_FRIENDS_WITH]->(m)
RETURN j, r, m
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_15821487/article/details/114920195