按照英雄的血量排序
match(n:hero) return n order by n.HP
倒序加desc
结果:
image.png
skip 跳过前多少行
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
中括号
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
1.每个节点或relation都有个系统分配的id,从0开始递增,全局唯一! 2.Create (a:Person {id:’123’}) //这里的ID是一个属性,和内置ID是两码事 3.通过函数id(node/relation) 可以获取id值; 不透明,犹如Oracle里的rowid; 4.用户可定义id属性,与内置id无关;
查询时呢?
MATCH (n:Person)-[:FUQI]-(s:Person) RETURN distinct n,s
create index on :Person(id);
drop index on :Person(id);
给哪些字段创建索引呢?根据查询需要,把查询多的字段建索引。
create index on :Person(name);
1、不需要给索引起名称,只需要设置索引字段即可;
2、通过该字段的查询都走索引
关系DB中:索引字段套一层函数的话,基本不走索引了。
explain match (n:hero) where n.name='孙尚香'return n
查的慢的话看一下执行计划 加索引会提高执行结构
没有创建索引
image.png
可以给某一个属性设置唯一约束
CREATE CONSTRAINT ON (a:Person) ASSERT a.id IS UNIQUE
drop CONSTRAINT ON (a:Person) ASSERT a.id IS UNIQUE