zoukankan      html  css  js  c++  java
  • Neo4j入门-CQL

    前言

    (Cypher)-[:LOVES]-(Graph Technology)

    Cypher是一种图形查询语言,本文简称为CQL,特性如下:

    它是Neo4j图形数据库的查询语言。

    它是一种声明性模式匹配语言。

    它遵循SQL语法。

    它的语法非常简单,是人性化、可读的格式。

    创建

    CQL可以很方便的创建节点与关系,主要使用create与merge,create可以直接创建,merge则相当于create+match。

    create

    1.创建结点

    create (p:Person{name:'周杰伦',age:22})
    

    对应关系如下:

    create (p    :Person   {name      :'周杰伦'  ,age      :22}) 
    create (变量p:标签Person{字段名name :值'周杰伦',字段名age:值22}) 
    
    ps:这里的p只是创建节点的一个临时的变量名,哪怕所有属性一样,也会生成新的对象,ID为自增长,不需要特殊处理
    

    其中变量、字段、值皆可省略,最少可以仅有标签,即向该标签插入空白节点(ID自增长)

    该CQL执行结果如下:

    可以看到我们添加了1个标签,创建了1个节点,设置了2个属性,并在1毫秒内完成。

    然后执行查看语句确认我们创建的数据:

    这样我们就成功执行了一次创建节点的操作。

    2.创建关系

    • 直接建立关系与节点

      create (a:RelatedPerson{name:'周杰伦'})-[r:娶了]->(b:RelatedPerson{name:'昆凌'})
      

      对应关系如下:

      create (a    :RelatedPerson   {name      :'周杰伦' })-[r    :娶了    ]->(b    :RelatedPerson   {name    :'昆凌'})
      create (变量a:标签RelatedPerson{字段名name:值'周杰伦'})-[变量r:标签 娶了]->(变量b:标签RelatedPerson{字段name:值'昆凌'})  
      

      这条语句起了两个作用,向标签RelatedPerson插入了a、b两个节点,同时将其用标签r连接起来

    • 根据已有的数据创建关系

       match (a:RelatedPerson),(b:RelatedPerson) where a.name = '昆凌' and b.name = '周杰伦' create (a)-[c:嫁给了]->(b) return a,b
      

      对应关系如下:

      match (a    :RelatedPerson   ),(b    :RelatedPerson   ) where a   .name     = '昆凌'   and b   .name     = '周杰伦'   create (a   )-[c    :嫁给了        ]->(b   ) return a,b
      match (变量a:标签RelatedPerson),(字段b:标签RelatedPerson) where 变量a.字段name = 值'昆凌' and 变量b.字段name = 值'周杰伦' create (变量a)-[变量c:关系标签 嫁给了]->(变量b) return 变量a,变量b
      

      这里其实可以分为两段看 ,第一段是查询

      match (a:RelatedPerson),(b:RelatedPerson) where a.name = '昆凌' and b.name = '周杰伦'
      

      从标签RelatedPerson中查询出了a,b两个节点,条件是a的name属性是昆凌,b的name属性是周杰伦。

      第二段是把这两个数据新建一个关系连接起来。

      create (a)-[c:嫁给了]->(b) return a,b
      

      ps:这里建立关系都是根据现有数据建立的,如果我再新建一个周杰伦,新的周杰伦并不会建立关系

  • 相关阅读:
    【20171123】【GITC精华演讲】贝业新兄弟李济宏:如何做到企业信息化建设的加减乘除
    920记者招待会: 对话详解海尔张瑞敏首席的人单合一
    存货控制中的ABC分类释义
    对员工宽容的公司 都死掉了
    小型互联网公司的IT系统建设思路
    第三方物流是什么
    伟哥对RTO & RPO的通俗理解
    【20170506】贝业新兄弟IT总监李济宏:第三方家居物流的IT架构探索
    【Vegas原创】VirtualBox扩容、分割的整体方案
    数据通信基础(物理层)学习笔记
  • 原文地址:https://www.cnblogs.com/tinging/p/12285083.html
Copyright © 2011-2022 走看看