Neo4j基础篇(一)

Neo4j介绍

Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。

在一个图中包含两种基本的数据类型:Nodes(节点) 和 Relationships(关系)。Nodes 和 Relationships 包含key/value形式的属性。Nodes通过Relationships所定义的关系相连起来,形成关系型网络结构。

Neo4j的优点,即适用于:

  • 自带一套易于学习的查询语言(名为Cypher)
  • 不使用schema,因此可以满足你的任何形式的需求。
  • 与关系型数据库相比,对于高度关联的数据(图形数据)的查询快速要快上许多。
  • 它的实体与关系结构非常自然地切合人类的直观感受。
  • 支持兼容ACID的事务操作。
  • 提供了一个高可用性模型,以支持大规模数据量的查询,支持备份、数据局部性以及冗余。
  • 提供了一个可视化的查询控制台,你不会对它感到厌倦的

Neo4j的缺点,即不适用于:

  • 记录大量基于事件的数据(例如日志条目或传感器数据)
  • 对大规模分布式数据进行处理,类似于Hadoop
  • 二进制数据存储
  • 适合于保存在关系型数据库中的结构化数据

Neo4j 安装

官网下载Neo4j,我下载的是Windows版的。
下载完成之后将其解压即可使用。
打开cmd进入解压后目录下的bin文件夹
neo4j指令相关的几个参数为:

  1. console:打开Neo4j的控制台
  2. start:启动
  3. stop:关闭
  4. restart:重启
  5. status:查看运行状态
  6. install-service:安装Neo4j在Windows系统上的服务。
  7. uninstall-service:卸载服务

首先在cmd上输入neo4j install-service 安装Windows上的服务
再输入neo4j start 启动Neo4j
在浏览器上输入http://127.0.0.1:7474/ 即可访问(用户名,密码最初都为neo4j)

Neo4j使用

官方实例

在命令行下输入以下命令可以获得官网给的一个有关电影的事例,用户可通过翻阅执行这些代码

:play movie-graph

执行第二页的代码之后可以得到movie-graph
Neo4jmovie eg

Neo4j Cypher查询

Cyper通过一系列不同的方法和建立于确定的实践为表达查询而激发的。许多关键字如like和order by是受SQL的启发。模式匹配的表达式来自于SPARQL。正则表达式匹配实现实用Scala programming language语言。

这个查询语言包含以下几个明显的部分:

  1. START:在图中的开始点,通过元素的ID或所以查找获得。
  2. MATCH:图形的匹配模式,束缚于开始点。相当于SQL的select
  3. WHERE:过滤条件。
  4. RETURN:返回所需要的。
  5. CREATE:创建节点。相当于SQL的create
    [ ] 代表关系 , ( ) 代表节点,{ }代表属性
create (:pig{name:"猪爷爷",age:15});        #创建一个节点,标签是pig,名字是猪爷爷,一个节点可以有多个标签
create (:pig{name:"猪奶奶",age:15});        #创建一个节点,标签是pig,名字是猪奶奶,一个节点可以有多个标签
# 创建一个关系是猪爷爷指向猪奶奶的关系,关系名为:夫妻
# 先查询到猪爷爷,给这个查询赋值到变量a,同样另一个节点赋值到变量b,然后创建a->b的关系
Match (a:pig{name:"猪爷爷"})  match(b:pig{name:"猪奶奶"}) create(a)-[r:夫妻]->(b); 
# 上述语句可以简写为如下:
create(:pig{name:"猪爸爸",age:7})-[:夫妻]->(:pig{name:"猪妈妈",age:6})
# 再多创建几个关系和节点
create(:pig{name:"佩奇",age:2})-[:姐弟]->(:pig{name:"乔治",age:1})
create(:die:pig{name:"祖父",age:20})-[:姐弟]->(:pig{name:"祖母",age:19})
match(a:pig{name:"猪爸爸"}) match(b:pig{name:"乔治"}) create(a)-[r:父子]->(b)
match(a:pig{name:"猪妈妈"}) match(b:pig{name:"乔治"}) create(a)-[r:母子]->(b)
match(a:pig{name:"猪爸爸"}) match(b:pig{name:"佩奇"}) create(a)-[r:父女]->(b)
match(a:pig{name:"猪妈妈"}) match(b:pig{name:"佩奇"}) create(a)-[r:母女]->(b)
create(:die:pig{name:"祖父",age:20})-[:姐弟]->(:pig{name:"祖母",age:19})
#使用以下语句修改猪妈妈的年龄
Match(a:pig{name:"猪妈妈"}) set a.age=10
#删除标签为die的节点
match(a:die) delete a;

通过以上语句可以得到下图:
在这里插入图片描述

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页