我的neo4j学习笔记

本文介绍了Neo4j图形数据库的基本概念,包括NoSQL特性和性能优势,并详细阐述了安装过程、Cypher查询语言的使用以及数据导入。通过实例展示了如何创建、查询和管理数据,帮助读者掌握Neo4j的核心操作。
摘要由CSDN通过智能技术生成

这篇博文目录如下:
- About neo4j
- Install neo4j
- learn to create and query data
- Import your data
包括对Neo4j图形数据库的简介和其重要组成部分、内部结构的讲解,对其查询语言cypher的介绍和实例。通过实例转换、比较传统关系型数据库与图形数据库。希望有时间下一次可以来总结一下用java实现neo4j的学习过程(* ~ *)

About neo4j

Neo4j是一个高性能的,Nosql图形数据库。Nosql =no sql,即与传统的将数据结构化并存储在表中的数据库不一样。Neo4j将数据存储在网络上,我们也可以把Neo4j视为一个图引擎。我们打交道的是一个面对对象的、灵活的网络结构而不是严格的、静态的表。传统关系型数据库,当数据量很大时,查询性能会明显受影响,尤其是一度以上的查询。但是图形数据库却在这方面表现得很好。
neo4j 支持多种主流编程语言,包括.Net、Java、JavaScript、Python

Install Neo4j

从官网这里下载neo4j,解压,然后进入bin文件夹,开启数据库

~$ path/to/your/neo4j/file
~$ cd bin
~$./neo4j console

开启后我们在浏览器上访问 localhost:7474,就可以本地运行

Learn to create and query data

既然Neo4j是数据库,则必然有它自己的查询语言。Cypher是一种面向图形的申明式语言。它由分句、关键词和一些表示判断、代表函数的语句组成。比如:WHERE,ORDER BY,SKIP LIMIT ,p.unitPrice > 10。与SQL不同的是,cypher是对于图形模式的表达。我们总是先用MATCH去匹配我们要操作的数据。

  • cypher: cypher是一种申明式查询语言。可以分解为下面几个部分:
    • nodes
      • 我们通常用圆括号来包含节点标示符(当然也可以不用)。节点标签也会一并注明。比如(p: Person),如果想添加属性:(p: Person {name: "yinglish"})。 注意:节点标签、关系类型和属性名称区分大小写。
    • relationships
      • 我们通常用箭头 –> 表示关系,没有尖箭头的如 – 指不强调方向关系。例子:
      • (a)-[:KNOWS|:LIKE]->(b) a到b是“相识”的关系或者”喜欢“
      • (a)-[rel:KNOWS]->(b) 关系的变量名为rel,类型是 KNOWS
      • -[{since: 2016}]-> 添加了额外的属性
      • -[:KNOWS*..4]->
        example: a -[rel: type*minHop..maxHop]-> b

        可变数量关系:从a节点到b节点最少可经过minHop、最大可经过maxHop个节点
    • patterns 模式由一个或多个路径组成,路径间用逗号分隔,一条路径就是一个节点和关系的序列,这个序列指定开始和结束节点,如:(a) –> (b),这条路径开始于a,通过outgoing关系指向b。如果你不在乎具体是哪个节点,不用指定它,只需要用空括号来表示就可以了,如:a –>()–>b。模式是cypher中的关键部分,灵活书写模式能帮我们正确获取、实现推测计算等等各种任务。

节点和关系是图数据库的基石,每个节点都可以有属性,每个节点每条关系都可以有标签。因此neo4j也被称为Property graph,看个图也许会更好理解:(当然了,属性和标签都是可选的,也可以没有)
这里写图片描述

cypher是学习neo4j的重中之重,它有很多关键词,很多灵活的搭配与使用,在理解neo4j的最基本要素:节点,关系,模式,标签,属性的概念及其相互间的组成关系后,对查询语句cypher的学习就是下一站要攻克的堡垒。但是在这篇博文不详细接受,可以通过这份官方的教程细细学习。

下面我们来看一个简单但足以说明情况的应用实例:
Create a recode for youself
CREATE (you: Person {name: "You"})
RETURN you

And add a properties to this note
MATCH (you: Person {name: "you"})
CREATE (you) -[like:LIKE]->(neo:Database {name: "Neo4j"})
RETURN you, like, neo

Create your friends
MATCH (you: Person {name: "you"})
FOREACH (name in ["Johan", Rajesh", "Anna", "Julia", "Andrew"])
CREATE (you) -[:FRIED]->(: Person {name: name}))

Create second degree friends and expert

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值