Cypher语法关键字(三)DELETE,REMOVE,ORDE
2020-07-20 本文已影响0人
数据的艺术2
DELETE
DELETE语句用于删除图元素--节点,关系或路径。
// 删除单个节点
MATCH (n:Useless) DELETE n
// 删除关系
MATCH (root { name: 'root' })-[r]-(A { name: 'A' }) DELETE r
// 删除路径
match p=(d { name: 'Node D' })--(e { name: 'Node e' }) delete p
// 删除一个节点及其所有的关系
MATCH (n { name: 'root' }) DETACH DELETE n
// 删除所有节点和关系
MATCH (n) DETACH DELETE n
REMOVE
REMOVE语句用于删除图元素的属性和标签。对于删除节点和关系,参见DELETE小节.
// 删除一个属性:Neo4j不允许属性存储空值null。如果属性的值不存在,那么节点或者关系中的属性将被删除。这也可以通过REMOVE来删除。
MATCH (p {name: 'Michael Douglas'}) REMOVE p.bornIn RETURN p
// 删除标签
MATCH (n:German { name: 'Peter' }) REMOVE n:German RETURN n
// 删除节点的多个标签
MATCH (n { name: 'Peter' }) REMOVE n:German:Swedish RETURN n
ORDER BY
ORDER BY是紧跟RETURN或者WITH的子句,它指定了输出的结果应该如何排序。
// 根据属性对节点进行排序
MATCH (n) RETURN n.name ORDER BY n.name
// 根据多个属性对节点进行排序
MATCH (n) RETURN n.born, n.name ORDER BY n.born, n.name
// 节点降序排序:在排序的变量后面添加DESC,Cypher将以逆序(即降序)对输出进行排序。
MATCH (n) RETURN n ORDER BY n.name DESC
// 空值的排序:当结果集中包含null值时,对于升序排列,null总是在结果集的末尾。而对于降序排序,null值总是排在最前面。
MATCH (n) RETURN n.title, n ORDER BY n.title
LIMIT
LIMIT限制输出的行数。
// 返回开始部分
MATCH (n) RETURN n ORDER BY n.name LIMIT 3
SKIP
SKIP定义了从哪行开始返回结果。
// 跳过前三
MATCH (n) RETURN n ORDER BY n.name SKIP 3
// 返回中间两个
MATCH (n) RETURN n ORDER BY n.name SKIP 1 LIMIT 2
// 跳过表达式的值加1
MATCH (n) RETURN n ORDER BY n.name SKIP toInt(3*rand())+ 1