cypher语言学习

1、非字母或空格类型关系可以用“`”(1左边的)引号引起来,如

Create (m)-[:`TYPE WITH SPACE`]->(n)

2、当需要匹配多种关系中的一种时,可以通过竖线(|)连接起来

Match (m:Movie)-[:ACTED_IN|DIRECTED]-(n:Person{name:’Tom’})

3、可变长关系和固定长度关系:-[:TYPE*minHops..maxHops]->,-[:TYPE*fixHops]->,如

MATCH p= (n:Person{name:'Tom Cruise'})-[*1..3]-(m:Movie) RETURN p,所有1到3跳关系。

MATCH p= (n:Person{name:'Tom Cruise'})-[:ACTED_IN*1..3]-(m:Movie) RETURN p,所有ACTED_IN关系的1到3跳关系。

4、参数

5、属性存在性检查,MATCH (n:Person{name:'Tom Cruise'}) where exists(n.born) return n

6、字符串匹配,STARTS WITH、ENDS WITH、CONTAINS,NOT如

MATCH (n:Person) where n.name starts with 'Tom' return n,

MATCH (n:Person) where not n.name starts with 'Tom' return n

7、正则表达式,~‘regexp’,(?i)不区分大小写,如MATCH (n:Person) where n.name=~'(?i)Tom.*' return n,通样’/’用转义字符’\\/’

8、列表,MATCH (n:Person) where n.name in ['Tom Cruise','Tom Hanks'] return n

9、聚合函数:count,avg,sum,min,max,collect(放入一个列表),distinct,percentileDisc、percentileCont(百分位),stdev、stdevp(标准偏差)

10、load csv,csv文件可以存在数据库服务器上,通过file:///url访问,也可以通过http、HTTPS和ftp来访问csv文件,using perodic commit 默认每次导入1000行,以防内存不够。没有文件头的USING PERIODIC COMMIT

LOAD CSV FROM "file:///attack/attack_mitigation.csv" AS line

merge (a:AttackMitigation{name: line[1] }) set a.id=line[2],包含文件头的USING PERIODIC COMMIT

LOAD CSV WITH HEADERS FROM "file:///attack/attack_mitigation.csv" AS line

merge (a:AttackMitigation{name: line.name }) set a.id=line.id, a.external_references=line.external_references,a.description=line.description

11、set语句,set可以设置属性,设置标签。

:params p:{name: 'Stella', age: 24}

Match (n:Person{name:’Andres’}) set n=$p return n

Match (n{name:’Andres’}) set n:German return n

12、delete用于删除图元素(节点、关系或路径)

Remove 用于删除图元素的属性和标签,Match (n{name:’Andres’}) remove n:German return n

13、排序,order by n.age (desc)

14、限制输出行数,limit 3,返回开始部分

15、跳过一部分,skip 3

16、unwind,将一个列表展开为一个列的序列

Unwind [1,2,3] as x return x

17、call语句用于调用数据库中的函数

18、函数

  1. 断言Predicate函数(all(),any(), none(), single(), exists()),
  2. 标量Scalar函数(size(), length(), type(), id(), coalesce()第一个非空值, head()列表中第一个元素, last()列表中最后一个元素, timestamp(), 与1970年1月1日午夜差值毫秒计, startNode(), endNode(), properties(), toInt(), toFloat()),
  3. 列表List函数(nodes(), relationships(), labels(), keys(), filter(), tail(), range(), reduce()),
  4. 数学函数(数值函数abs(), ceil(), floor(), round(), sign(), rand(), 对数函数log(), log10(), 指数函数exp(), e(), sqrt(), 三角函数sin(), cos(), tan(), cot(), asin(), acos(), atan(), atan2(), pi(), degrees(), radians() haversin() )
  5. 字符串函数(replace(),substring(), left(), right(), ltrim(), rtrim(), trim(), lower(), upper(), split(), reverse(), toString())
  6. 自定义函数

19. 模式:索引(创建索引、删除索引)和约束

20.更改节点标签名:MATCH (n:OLD_LABEL) REMOVE n:OLD_LABEL SET n:NEW_LABEL

21. 删除重复节点: 

MATCH (n:Input)
WITH n.inputID AS inputID, collect(n) AS nodes
WHERE size(nodes) > 1
FOREACH (n in tail(nodes) | DETACH DELETE n)

22.删除大规模节点而内存不溢出:MATCH (n:CPE23) with n LIMIT 1000000 detach DELETE n RETURN count(*);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值