Neo4j图数据库

  • 了解图数据库Neo4j
  • 什么是Neo4j
  • 安装配置Neo4j
  • JDK安装
  • Neo4j安装
  • 掌握操作Neo4j数据库的基本语句
  • 快速清空数据库

了解图数据库Neo4j

什么是Neo4j

neo4j 数据库是一个高性能的 NoSQL 图形数据库。它的存储结构非常类似于数学中的图,以结点结点之间的关系为存储的基本内容。
neo4j 中的图指的是有向图,所有的关系都必须是有方向的,如果试图创建没有方向的关系会失败。
非常适合存储关系错综复杂的数据,如知识图谱、人脉网等。neo4j 中没有分库分表的概念,所有结点和关系都存在一个库中。由于没有表结构,因此它非常适合存储半结构化数据,扩展性极好。

Neo4j图数据库_java


Neo4j用的人最多,模板好找,报错能查。。。。

安装配置Neo4j

JDK安装

  • Neo4j不支持低版本的JDK所以需要重新下载高版本的(如果jdk版本高可忽略)
  • JDK安装:https://www.oracle.com/java/technologies/javase-downloads.html
  • 本人安装的是jdk15.0.1
  • Neo4j图数据库_java_02

  • 是否安装成功了:java -version

Neo4j安装

  • Neo4j安装:https://neo4j.com/download-center/
  • Neo4j环境变量的配置

Neo4j图数据库_nosql_03

  • 启动: neo4j.bat console
  • Neo4j图数据库_数据库_04


  • Neo4j图数据库_数据库_05

  • 可以玩玩图数据库的例子:
  • Neo4j图数据库_数据库_06


掌握操作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