图数据库之Neo4j学习笔记一(超详细)

概述:

随着有关图的研究的深入,图数据库也变得越来越重要了。
图数据库常规的有:neo4j(支持超多语言)、JanusGraph/Titan(分布式)、Orientdb,google也开源了图数据库Cayley(Go语言构成)、PostgreSQL存储RDF格式数据。
这里我们介绍的是Neo4j。

特点介绍:

Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。内置Cypher 查询语言。
Neo4j具有以下特性:

  • 图数据库 + Lucene索引
  • 支持图属性
  • 支持ACID
  • 高可用性
  • 支持320亿的结点,320亿的关系结点,640亿的属性

Neo4j的优点为:

  • 高连通数据
  • 推荐
  • 路径查找
  • A*算法:https://baike.baidu.com/item/A*算法/215793?fr=aladdin
  • 数据优先

一、下载与安装

1.首先,我们要来到官网下载,注意这里需要先注册一个账号(很简单的),
2.然后点击Download NEO4J DESKTOP.(这里本人安装的是desktop版本,大家也可以根据页面选择企业版和社区版)。
3.安装过程就选择自己要保存的路径,然后一直按next下去就行。
官网链接:https://neo4j.com/download-center/#releases

二、简单使用

安装完成后登入
点击 Add Graph 创建一个Graph (这里是创建一个图数据库,用户名密码以及数据库名称都是自己设置的)并点击start。
创建完成后,点击manage,出现下面的界面,然后点击Open Browser,就可以开始了!

图数据库之Neo4j学习笔记一(超详细)_第1张图片

接下来会出现这个界面:
在最上面的$符号处开始编写代码。
图数据库之Neo4j学习笔记一(超详细)_第2张图片
那么接下来就以例子来讲解如何建立你的第一个图谱吧!

三、Neo4j之Cypher语句

简介:
Neo4j CQL -

  • 它是Neo4j图形数据库的查询语言。
  • 它是一种声明性模式匹配语言
  • 它遵循SQL语法。
  • 它的语法是非常简单且人性化、可读的格式
    如Oracle SQL -
  • Neo4j CQL 已命令来执行数据库操作。
  • Neo4j CQL 支持多个子句像在哪里,顺序等,以非常简单的方式编写非常复杂的查询。
  • NNeo4j CQL 支持一些功能,如字符串,Aggregation.In 加入他们,它还支持一些关系功能。

CREATE 语句:

Neo4j使用CQL“CREATE”命令

  • 创建没有属性的节点
  • 使用属性创建节点
  • 在没有属性的节点之间创建关系
  • 使用属性创建节点之间的关系
  • 为节点或关系创建单个或多个标签

这里我们就举几个简单的例子:

创建没有属性的节点:

#格式:
CREATE(<node_name>:<label_name>)
#例子:
CREATE(qwq:QWQ)

效果:
因为这里没有属性,所以显示的ID(id是默认有的)
图数据库之Neo4j学习笔记一(超详细)_第3张图片

创建有属性的节点:(注:属性值得用‘’或“”标注)

#格式:
CREATE(
	<node-name>:<label-name>
	{
		<Property1-name>:<Property1-Value>(每个属性之间用逗号分开)
			.......
		<Propertyn-name>:<Propertyn-Value>

	}
)
#例子:
CREATE(qwq:QWQ{name:'QWQ'})

效果:
这里又新建了一个节点,而不是在上面的那个节点。新建的节点给予了QWQ的name属性。
如果想在上面建立的那个节点上给予这个属性,就需要先使用MATCH语句来锁定上面的节点,MATCH语句在接下来会介绍。
图数据库之Neo4j学习笔记一(超详细)_第4张图片

MATCH语句:

Neo4j CQL MATCH命令用于 -

  • 从数据库获取有关节点和属性的数据
  • 从数据库获取有关节点,关系和属性的数据
#格式:
MATCH(
<node-name>:<label-name>
)
#例子:
MATCH(qwq:QWQ)

结果:
就是找到标签为QWQ的节点
图数据库之Neo4j学习笔记一(超详细)_第5张图片
注意-
我们不能单独使用MATCH Command从数据库检索数据。 如果我们单独使用它,那么我们将InvalidSyntax错误。
如果你观察到错误消息,它告诉我们,我们可以使用MATCH命令与RETURN子句或更新子句。

RETURN 语句:

Neo4j CQL RETURN子句用于 -

  • 检索节点的某些属性
  • 检索节点的所有属性
  • 检索节点和关联关系的某些属性
  • 检索节点和关联关系的所有属性
#格式:
RETURN
<node-name>.<Property1-name>
.....
<node-name>.<Propertyn-name>
#例子:
MATCH(qwq:QWQ)
RETRURN qwq

结果:
跟上图一样,返回两个节点。

MATCH(qwq:QWQ)
RETURN qwq.name

结果:
图数据库之Neo4j学习笔记一(超详细)_第6张图片
这里返回的是它的name的value,即; QWQ

注:这里一定要和MATCH或CREATE一起使用,不能单独使用RETURN语句。

你可能感兴趣的:(图数据库之Neo4j学习笔记一(超详细))