图数据库neo4j介绍(4)——常用语法

排序 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

drop CONSTRAINT ON (a:Person) ASSERT a.id IS UNIQUE

你可能感兴趣的:(图数据库neo4j介绍(4)——常用语法)