了解图数据库Neo4j
什么是Neo4j
neo4j 数据库是一个高性能的 NoSQL 图形数据库。它的存储结构非常类似于数学中的图,以结点和结点之间的关系为存储的基本内容。
neo4j 中的图指的是有向图,所有的关系都必须是有方向的,如果试图创建没有方向的关系会失败。
它非常适合存储关系错综复杂的数据,如知识图谱、人脉网等。neo4j 中没有分库分表的概念,所有结点和关系都存在一个库中。由于没有表结构,因此它非常适合存储半结构化数据,扩展性极好。
Neo4j用的人最多,模板好找,报错能查。。。。
安装配置Neo4j
JDK安装
-
Neo4j不支持低版本的JDK所以需要重新下载高版本的(如果jdk版本高可忽略)
-
JDK安装:https://www.oracle.com/java/technologies/javase-downloads.html
-
本人安装的是jdk15.0.1
-
是否安装成功了:java -version
Neo4j安装
- Neo4j安装:https://neo4j.com/download-center/
- Neo4j环境变量的配置
- 启动:
neo4j.bat console
可以玩玩图数据库的例子:
掌握操作Neo4j数据库的基本语句
- Cypher语法
- https://www.w3cschool.cn/neo4j/ 这个教程不错。
增
- 增加一个节点
CREATE(n:Person{name:'yl',age:21})
CREATE(n:Person{name:'ss',age:21,weight:160})
- 增加带有关系属性的节点
CREATE(p:Person{name:'kristen',sex:'woman'})-[:写作业{project:'C++'}]->(n:Person{name:'luer',sex:'woman'})
- 双向关系
CREATE (romeo:Person{name: "Romeo"})-[:LOVES]->(juliet:Person{name:"Juliet"})
CREATE (juliet)-[:LOVES]->(romeo)
删
- 删除节点
MATCH(person:Person{name:'yl'}) DELETE person
MATCH(p:Person) DETACH DELETE p;
- 如果这个节点关联的有关系则不能删除
- 删除关系
MATCH (p1:Person)-[r:LOVES]-(p2:Person)
DELETE p1,p2,r
- 删除属性
MATCH(h:Person{name:'ss'}) REMOVE h.weight
改
- 增加标签
MATCH(t:Person) WHERE id(t) = 2 set t:好人 RETURN t
- 增加属性
MATCH(a:好人) WHERE id(a) = 2 set a.战斗力 = 500 RETURN a
- 修改属性
MATCH(a:好人) WHERE id(a) = 2 set a.战斗力 = 1000 RETURN a
查
MATCH(h:Person)-[:写作业]->(t:Person) RETURN h,t
- 查的操作很多,可以参考Neo4j的例子。
快速清空数据库
MATCH(n)
DETACH DELETE n