Cypher语法

简介

Neo4j的Cypher语言具有以下特点:

  1. 声明性模式匹配语言
  2. 遵循SQL语法
  3. 语法非常简单并且人性化、可读的格式

第一章 基础

注释符 //
参数

Cypher支持带参数的查询,这样就不必必须使用字符串来构建查询了。
举个简单的例子:

match (a) where a.name = $name return n

等价于

match (a {name: $name})

$name可以通过所使用的驱动来提交上去。

运算符
  1. 数学运算符
    +、-、*、/、%、^
  2. 比较运算符(同时支持链式比较)请记住没有==
    =、<>、<、>、<=、>=、is null、is not null
  3. 布尔运算符
    and、or、xor、not
  4. 字符串运算符
    +、=~
  5. 列表运算符
    +、in
  6. 属性运算符 (已删除)
    ?、!

第二章 模式

模式和模式匹配是Cypher的操作对象。相当于在白板上画出图的形状,模式在match、create和merge等语句后出现。

  • 节点模式
    最简单的表达,(a)或者()
  • 关系节点的模式
    后续不需要使用节点时,可以不给变量名 (a)–>(b)或者(a)–>()
  • 描述关系
    (1)如果不关心关系的方向的时候,箭头可以省略,如 **(a)–(b)**或者 (a)–>(b)
    (2)如果后续需要使用关系,可以给关系起个变量名,如 (a)-[r]->(b)
    (3)在查询已经存在的数据的时候,如果关系的类型可以是一个类型集中的任意一种,可以用 | 间隔,如 (a)-[r:TYPE1|TYPE2]-(b)
    (4)描述路径的长度,左右边界二者可任缺,并且也可以限制路径的类型,如 (a)-[*2]->(b) 或者 (a)-[:is_a*3…5]->(b) 或者 (a)-[*3…]->(b) 或者 (a)-[*…5]->(b) 或者 (a)-[*]->(b)

第三章 命令

列表基本操作

//列表
[0,1,2,3,4,5]
//生成0到10的列表(和python不一样)
range(0,10)
//取列表某个元素
range
  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值