cypher语句
语句 | 描述 |
---|---|
match | ~语句通过模式(Pattern)来检索数据库 |
optinal match | ~匹配模式与match类似,不同之处在于,如果没有匹配到,将null作为未匹配到部分的值 |
where | ~不能单独使用,只能作为match、optinal match语句中添加约束 |
create | ~用于创建图元素:节点和关系 |
merge | ~或者匹配已存在的节点并绑定到它,或者创建新的然后绑定它 |
set | ~用于更新节点的标签以及节点和关系的属性 |
delete | ~用于删除图元素(节点,关系或路径) |
detach delete | ~用于同时删除节点和关系 |
remove | ~用于删除图元素的属性和标签 |
foreach | ~用于更新列表中的数据,或者来自路径的组件,或者聚合的结果 |
create unique | 尽可能地匹配,然后创建未匹配到的。相当于match和create的混合体(多个匹配会报错) |
return | ~定义了查询结果集中返回的内容 |
order by | ~是紧跟return或者with的子句,它指定了输出的结果应该如何排序 |
order by X desc | 将以逆序(降序)对输出进行排序 |
limit | ~限制输出的行数,其可接受结果为正整数的任意表达式,表达式不能引用节点或关系 |
skip | ~定义了从哪行开始返回结果 |
with | ~将分段的查询部分连接在一起,查询结果从一部分以管道形式传递给另外一部分作为开始点(常见用法就是限制传递给其他match语句的结果数) |
unwind | ~将一个列表展开为一个行的序列 |
union | ~用于将多个查询结果组合起来,union all将包含所有结果;union返回的结果集中会去掉重复值 |
call | ~用于调用数据库中的过程 |
cypher函数
类别 | 函数名 | 描述 |
---|---|---|
断言(Predicate)函数 | 给定输入返回True或False | |
all() | 判断是否一个断言适用于列表中的所有元素 | |
any() | 判断是否一个断言至少适用于列表中的一个元素 | |
none() | 如果断言不适用于列表中的任何元素,则返回True | |
single() | 如果断言刚好只适用于列表中的某一个元素,则返回True | |
exists() | 如果数据库中存在该模式或者节点中存在该属性时,则返回True | |
标量(Scalar) | 标量函数返回一个单值 | |
size() | 返回表中元素的个数 | |
length() | 返回路径的长度 | |
type() | 返回字符串代表的关系类型 | |
id() | 返回关系或者节点的id | |
coalesce() | 返回表达式列表中的第一个非空的值 | |
head() | 返回列表中的第一个元素 | |
last() | 返回列表中的最后一个元素 | |
timestamp() | 返回当前时间与1970年1月1日午夜之间的差值,单位为毫秒 | |
startNode() | 返回一个关系的开始节点 | |
endNode() | 返回一个关系的结束节点 | |
properties() | 将实参转为属性值的map | |
tolnt() | 将实参转换为一个整数 | |
toFloat() | 将实参转换为浮点数 | |
列表(List)函数 | 列表函数返回列表中的元素 | |
nodes() | 返回一条路径中的所有节点 | |
relationships() | 返回一条路径中的所有关系 | |
labels() | 以字符串列表的形式返回一个节点的所有标签 | |
keys() | 以字符串列表的形式返回一个节点、关系或者map的所有属性的名称 | |
extract() | 使用~从节点或关系列表中返回单个属性或者某个函数的值 | |
filter() | 返回列表中满足断言要求的所有元素 | |
tail() | 返回列表中除了首元素之外的所有元素 | |
range() | 返回某个范围内的值,range(start,end,[,step]),step默认为1 | |
reduce() | ~对列表中的每个元素执行一个表达式,将表达式结果存入一个累加器 | |
数学函数 | 这些函数仅适用于数值表达式 | |
abs() | ~返回数值的绝对值 | |
ceil() | ~返回大于或等于实参的最小整数 | |
floor() | ~返回小于等于表达式的最大的整数 | |
round() | ~返回距离表达式值最近的整数 | |
sign() | ~返回一个数值的正负。值为零返回0;值为正数返回1;值为负数返回-1 | |
rand() | ~返回[0,1)之间的一个随机数,返回的数值在整个区间遵循均匀分布 | |
- 对数函数 | log() | ~返回表达式的自然对数 |
log10() | ~返回表达式的常用对数(以10为底) | |
exp() | ~返回e^n,这里e是自然对数的底,n为实参值 | |
e() | ~返回自然对数的底e的值 | |
sqrt() | ~返回数值的平方根 | |
- 三角函数 | sin() | ~返回表达式的正弦函数值 |
cos() | ~返回表达式的余弦函数值 | |
tan() | ~返回表达式的正切值 | |
cot() | ~返回表达式的余切值 | |
asin() | ~返回表达式的反正弦值 | |
acos() | ~返回表达式的反余弦值 | |
atan() | ~返回表达式的反正切值 | |
atan2() | ~返回方位角,即计算复数x+yi的幅角 | |
pi() | ~返回常数pi的数值 | |
degrees() | ~将弧度转为度 | |
radians() | ~将度转为弧度 | |
haversin() | ~返回表达式的半正矢(可用于计算球面两点(以经纬度方式给出)之间的距离) | |
字符串函数 | 针对字符串表达式 | |
replace() | ~返回替换后的字符串,repalce(‘hello’,‘l’,’'w)->‘hewwo’ | |
substring() | ~返回原字符串的子串,substring(‘hello’,1,3)->‘ell’ | |
left() | ~返回原字符串左边指定长度的子串,left(‘hello’,3)->‘hel’ | |
right() | ~返回原字符串右边指定长度的子串,right(‘hello’,3)->‘llo’ | |
ltrim() | ~返回原字符串移除左侧空白字符后的字符串,ltrim(’ hello’)->‘hello’ | |
rtrim() | ~返回原字符串移除右侧空白字符后的字符串,ltrim('hello ')->‘hello’ | |
trim() | ~返回原字符串移除两侧空白字符后的字符串,trim(’ hello ')->‘hello’ | |
lower() | ~以小写的形式返回原字符串 | |
upper() | ~以大写形式返回原字符串 | |
split() | ~返回以指定模式分隔后的字符串序列,split(‘one,two’,’,’)->[‘one’,‘two’] | |
reverse() | ~返回原字符串的倒序字符串 | |
toString() | ~将实参转换为字符串 |
cypher用到的其他函数或语句
函数 | 描述 |
---|---|
case | 条件表达式,类似于if / else |
start with | 匹配字符串开始 |
end with | 匹配字符串结尾 |
contains | 用于检查字符串是够包含某个字符串 |
not | 返回不满足给定字符串匹配要求的结果 |
正则表达式 | =~‘正则语句’ |
in | 检查列表中是否存在某个元素,可以使用in运算符 |
is null | 如果不存在 |
and | |
or | |
<,>=,> | 不等运算符 |
count() | 聚合函数,用于计算行的数量;计算非空值的数量 |
sum | 聚合函数,计算所有值之和,空值将被丢弃 |
avg | 计算数值列的平均值 |
percentileDisc | 计算给定值在一个组中的百分位,取值0.0到1.0,舍入法,返回最接近百分位的值 |
percentileCont | 计算给定值在一个组中的百分位,取值0.0到1.0,线性插值法,在两个值之间计算一个加权平均数 |
stdev | 计算给定值在一个组中的标准偏差,采用标准two-pass方法,以N-1作为分母,在以部分样本作为无偏估计时使用 |
stdevp | 计算给定值在一个组中的标准偏差,当计算整个样本的标准偏差时使用 |
max | 查找数值列中最大值 |
min | 查找数值列中最小值 |
collect | 将所有值收集起来放入一个列表,空值null将被忽略 |
distinct | 所有聚合函数均可带~修饰符,其可剔除重复部分 |
+= | 添加多个属性 |