排序 order by
按照英雄的血量排序
match(n:hero) return n order by n.HP 倒序加desc
结果:
image.png
skip limit
skip 跳过前多少行
union union all
union:把多段match的return结果 上线组合一个结果集,会自动去掉重复行
union all :作用同union ,但是不去重
match(n:hero) where n.HP>2000 return n.HP,n.speed union all match(n:hero) where n.speed='340' return n.HP,n.speed 如何去除空值 加上 where and n.age is not null
image.png
in语法
中括号
match(n:hero) where n.name in ['孙尚香','鬼谷子','关羽'] return n.name,n.speed union all match(n:hero) where n.speed='340' return n.name,n.speed
image.png
内置id
1.每个节点或relation都有个系统分配的id,从0开始递增,全局唯一! 2.Create (a:Person {id:’123’}) //这里的ID是一个属性,和内置ID是两码事 3.通过函数id(node/relation) 可以获取id值; 不透明,犹如Oracle里的rowid; 4.用户可定义id属性,与内置id无关;
relation 具有方向性
查询时呢?
MATCH (n:Person)-[:FUQI]-(s:Person) RETURN distinct n,s
索引 index
create index on :Person(id); drop index on :Person(id);
给哪些字段创建索引呢?根据查询需要,把查询多的字段建索引。
create index on :Person(name);
1、不需要给索引起名称,只需要设置索引字段即可;
2、通过该字段的查询都走索引
- where
- in
- substring
关系DB中:索引字段套一层函数的话,基本不走索引了。
执行计划
explain match (n:hero) where n.name='孙尚香'return n
查的慢的话看一下执行计划 加索引会提高执行结构
没有创建索引
image.png
属性唯一约束 constraint
可以给某一个属性设置唯一约束
CREATE CONSTRAINT ON (a:Person) ASSERT a.id IS UNIQUE原文地址: IT虾米网drop CONSTRAINT ON (a:Person) ASSERT a.id IS UNIQUE