INDEX 索引 
CREATE INDEX FOR (p:Person) ON (p.name) 
为label为Person的节点增加name属性的索引
CREATE INDEX index_name FOR (p:Person) ON (p.age) 
为label是Person的节点增加age属性的索引,并且索引名为index_name
CREATE INDEX FOR (p:Person) ON (p.name, p.age) 
为label是Person的节点增加name与age属性的复合索引
MATCH (n:Person) WHERE n.name = $value 
匹配筛选时自动使用索引
MATCH (n:Person) 
即便筛选条件是在list中,也可以自动使用索引
MATCH (n:Person) 
自动使用复合索引,筛选条件必须都在复合索引的属性范围内
MATCH (n:Person) 
选择性使用单个或多个索引
DROP INDEX index_name 
删除索引
CONSTRAINT 约束 
CREATE CONSTRAINT ON (p:Person) 
创建属性值与节点类型唯一性约束,同时也会创建响应的索引;如果已经存在具有某个名字的Person,则无法执行新增操作
CREATE CONSTRAINT uniqueness ON (p:Person) 
ASSERT p.age IS UNIQUE
创建属性值与节点类型唯一性约束名称为uniqueness,同时也会创建响应的索引
DROP CONSTRAINT uniqueness 
删除约束
CALL 调用 
CALL db.labels() YIELD label 
调用数据库内置的函数db.labels(),用于依次列出获取数据库内所有节点label
CALL db.labels() YIELD label 
RETURN count(label) AS count
调用数据库内置的函数db.labels(),用于获取数据库内所有节点label,并将YIELD的结果作为参数后续使用,这里使用count()函数,获取label的数量
CALL java.stored.procedureWithArgs 
可以使用call调用外部封装的函数,如果需要传参,可以使用input,比如{input: 'foo'}
CALL { 
使用call调用子查询
IMPORT 导入 
LOAD CSV FROM 
'https://neo4j.com/docs/cypher-refcard/4.0/csv/artists.csv' AS line
CREATE (:Artist {name: line[1], year: toInteger(line[2])})
从CSV文件导入数据,并且创建节点,以列的索引对应属性
LOAD CSV WITH HEADERS FROM 
从CSV文件导入数据,文件带有列名,用列名对应属性
USING PERIODIC COMMIT 500 
当导入大批量数据时,采用分批执行事务,每次按照一定数量导入,避免单次导入数据超内存
LOAD CSV FROM 
使用自定义的字段分隔符
LOAD CSV FROM 
返回LOAD CSV正在处理文件的绝对路径,如果没有LOAD CSV在处理则返回NULL
LOAD CSV FROM 
返回LOAD CSV正在处理文件的行数,如果没有LOAD CSV在处理则返回NULL
DATABASE MANAGEMENT 数据库管理 
SHOW DATABASES 
列出系统所有数据库及相关信息
SHOW DATABASE myDatabase 
列出myDatabase数据库的相关信息
SHOW DEFAULT DATABASE 
列出默认数据库的相关信息
USER MANAGEMENT 用户管理 
CREATE USER alice SET PASSWORD $password 
创建新用户并设密码
ALTER CURRENT USER SET PASSWORD FROM $old TO $new 
修改用户密码
DROP USER alice 
删除用户
关于Cypher的系列先到此结束,这只是一个速查表,具体使用还需要靠自己慢慢探索与举一反三,这个速查表也并非很完美,关于4.0新功能中提到的有关多数据库,区别用户权限等应该只限企业版,所以在这个速查表并没有涉及。
原创不易,求转发,求点“在看”,喜欢请关注,在这里有最真实的分享!
Python与知识图谱
注意:本文归作者所有,未经作者允许,不得转载