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

概述:

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

特点介绍:

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

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

Neo4j的优点为:

一、下载与安装

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

二、简单使用

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

在这里插入图片描述

接下来会出现这个界面:
在最上面的$符号处开始编写代码。
在这里插入图片描述
那么接下来就以例子来讲解如何建立你的第一个图谱吧!

三、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是默认有的)
在这里插入图片描述

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

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

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

效果:
这里又新建了一个节点,而不是在上面的那个节点。新建的节点给予了QWQ的name属性。
如果想在上面建立的那个节点上给予这个属性,就需要先使用MATCH语句来锁定上面的节点,MATCH语句在接下来会介绍。
在这里插入图片描述

MATCH语句:

Neo4j CQL MATCH命令用于 -

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

结果:
就是找到标签为QWQ的节点
在这里插入图片描述
注意-
我们不能单独使用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

结果:
在这里插入图片描述
这里返回的是它的name的value,即; QWQ

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

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值