NEO4j简单入门

Posted gzyc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NEO4j简单入门相关的知识,希望对你有一定的参考价值。

Neo4j是:

  1. 一个开源
  2. 无Schema
  3. 没有SQL
  4. 图形数据库

图形数据库也称为图形数据库管理系统或GDBMS。
Neo4j的官方网站:http://www.neo4j.org

Neo4j的优点

  1. 它很容易表示连接的数据
  2. 检索/遍历/导航更多的连接数据是非常容易和快速的
  3. 它非常容易地表示半结构化数据
  4. Neo4j CQL查询语言命令是人性化的可读格式,非常容易学习
  5. 它使用简单而强大的数据模型
  6. 它不需要复杂的连接来检索连接的/相关的数据,因为它很容易检索它的相邻节点或关系细节没有连接或索引

图形数据库

  1. 定义:图形数据库是以图形结构的形式存储数据的数据库。 它以节点,关系和属 的形式存储应用程序的数据。 正如RDBMS以表的“行,列”的形式存储数据,GDBMS以“图形”的形式存储数据。

  2. 简单地说,我们可以说图数据库主要用于存储更多的连接数据。

如果我们使用RDBMS数据库来存储更多连接的数据,那么它们不能提供用于遍历大量数据的适当性能。 在这些情况下,Graph Database提高了应用程序性能。

如今,大多数社交网络应用程序(如Facebook,Google +,LinkedIn,Twitter,Yammer等)和视频托管应用程序(如Google YouTube,Flickr,Yahoo Video等)都在使用更多连接的数据。

图数据库基本数据结构

  1. 节点(Node)是图数据库中的一个基本元素,用以表示一个实体记录,就像关系数据库中的一条记录一样。在Neo4j中节点可以包含多个属性(Property)和多个标签(Label)。
  2. 关系(Relationship)同样是图数据库中的基本元素。当数据库中已经存在节点后,需要将节点连接起来构成图。关系就是用来连接两个节点,关系也称为图论的边(Edge),其始端和末端都必须是节点,关系不能指向空也不能从空发起。关系和节点一样可以包含多个属性,但关系只能有一个类型(Type)。
  3. 当使用节点和关系创建了一个图后,在此图中任意两个节点间都是可能存在路径的。路径也有长度的概念,也就是路径中关系的条数。

Neo4j - CQL简介

CQL代表Cypher查询语言。 像Oracle数据库具有查询语言SQL,Neo4j具有CQL作为查询语言。

Neo4j CQL -

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

语法

  1. 一对圆括号来表示节点。如:(), (foo)。
  2. 一对短横线(即“--”)表示:一个无方向关系。有方向的关系在其中一段加上一个箭头(即“<--”或“-->”)。
  3. 方括号表达式[…]可用于添加详情。里面可以包含变量、属性和或者类型信息。
  4. 当需要引用模式(pattern)或者查询的某一部分的时候,可以对其进行命名。针对不同部分的这些命名被称为变量。
  5. Neo4j图由节点和关系构成。节点可能还有标签和属性,关系可能还有类型和属性。节点和关系都是简单的低层次的构建块。单个节点或者关系只能编码很少的信息,但模式可以将很多节点和关系编码为任意复杂的想法。
  6. CREATE语句用于创建图元素:节点和关系、索引。

     CREATE (n:Person:Admin)

    上面这条CREATE语句创建了一个节点,这个节点有两个标签Person和Admin

    CREATE (a)-[r:RELTYPE]->(b)
    上面这条CREATE语句创建了一个关系,由节点(a)指向节点(b),这个关系有一个type:RELTYPE

  7. MATCH语句用指定的模式检索数据库。

    MATCH (movie:Movie)
    RETURN movie.title 

    返回数据库中的所有电影的title。
    非常重要的一点是match不能单独使用,必须要配合return 或者 update 一起使用,否则直接error

  8. WHERE在MATCH或者OPTINAL MATCH语句中添加约束,或者与WITH一起使用来过滤结果。

     MATCH (n)
     WHERE n:Movie and n.released > 1990
     RETURN n 

    将返回released > 1990的’Movie节点。

  9. OPTINAL MATCH语句用于搜索模式中描述的匹配项,对于找不到的项用null代替。

     MATCH (a:Movie { title: 'The Matrix' })
     OPTIONAL MATCH (a)-->(x)
     RETURN x 

如果这个节点没有外向关系,返回null。

以上是关于NEO4j简单入门的主要内容,如果未能解决你的问题,请参考以下文章

Neo4j 第三篇:Cypher查询入门

Neo4J入门笔记[2]---导出数据为CSV

关于neo4j初入门

neo4j入门

Neo4J入门笔记[2]---Neo4J GDS 图数据科学库

Neo4J入门笔记[2]---Neo4J GDS 图数据科学库