Cypher 语法(一)
基本语法
用圆括号()来表示 节点
(n) 用来给节点赋予一个名字,可以在需要时引用这个节点
(n:label) 用来匹配有某个标签的节点
(n: label:label1:label2) 用来匹配有多个标签的节点
(n: label:label1{key:value}) 用对象字面量的方式,通过节点的属性对节点进行筛选
关系语法
用方括号 [] 来表示关系
关系与节点一样,可以赋予一个名字以便在别处引用
[ r ] 表示一个关系被赋予变量 r ,可以在别处引用
[ r:label ] 匹配有某个标签的关系
注:关系只能有一个标签,节点可以有多个
[ r:label1 | :label2 ] 用来匹配多个关系中的一种
[ n:label1 | :label2 {key : value }] 用对象字面量的方式,通过关系的属性对关系进行筛选
() - [* 3..5] ->() 用来表示变长关系, 即两个节点之间通过3-5个关系连接
() - [*3..] -> () 关系长度大于3
() - [*..5] -> () 关系长度小于5
() - [*] -> () 任意边界长度
注:变长关系不能用于create和merge语句中
关系与节点的连接(单个横杠)
- 表示双向连接
-> 或者 <- 表示单向连接
例如:
()-[]-()
()-[]->()
()<-[]-()
节点与节点直接连接(两个横杠)
如果不在意节点之间通过何种关系连接,可以用 --、-->、<-- 来直接连接节点与节点
()--()-->()
()-->()<--()
节点的 id
节点的 id 是整数类型,由数据库内部自行维护,在查询语句中可以使用 id(n)函数来获取。
语句可以分为3类
读语句:match, optional match, where, start, aggregation, load csv
写语句:create, merge, set, delete, remove, foreach, create unique
通用语句:return, order by, limit, skip, with, unwind, union, call