参考

CQL命令 用法
CREATE 创建节点,关系,属性
MATCH 检索先关的节点,关系,属性
MERGE 检测存在则返回,否则创建
RETURE 返回查询结果
WHERE 提供条件过滤检索数据
DELETE 删除节点和关系
REMOVE 删除节点和关系的属性
ORDER BY 排序检索数据
SET 添加或更新标签
LIMIT 查询前多少个
skip 跳过前多少个
名称 描述
节点 ()
属性 []
关系 -
指向 > 或 <
  • LIMIT 25 查前25个
  • skip 5 忽略前面5个

LOAD CSV 导入命令

https://blog.csdn.net/qq_45711950/article/details/123476345

  • 支持本地文件 import文件夹下文件
  • 支持url远程文件
  • 支持带头的文件
LOAD CSV FROM "file:///a.csv" AS line CREATE (:person { name: line[1], age: toInteger(line[2])})

查询

(farmer)-[:help]->(snake)

MATCH (n) RETURN n   ---得到所有节点
MATCH (n:漫威宇宙) RETUREN n
MATCH p=()-[r:'同学']->() RETURN p LIMIT 10

MATCH (n:person {name:'迪迦'}),(m:relation)  where m.from='迪迦' return n.name,m.relation,m.to

创建节点

CREATE (n)    ---创建单节点
CREATE (n),(m)   ---创建多个节点
 CREATE (n:Person)    ---创建带一个标签的节点
 CREATE (n:Person { name: 'Andy', title: 'Developer' })    ---创建一个节点带标签和属性

#
create (:student{name:"小红"}),(:student {name:"张三"}),(:student {name:"小明"})

建立关系

match (n:student {name:"小明"}),(m:student {name:"小红"})
create (n)-[r:同学]->(m) return n.name,type(r),m.name

RETUREN 的使用

返回值—n.name 
返回节点 n
如:MATCH (n:'妖神记') RETURN id(n),n.name,n.tail,n.relation

WHERE 的使用

  • 和SQL里面的WHERE用法一样
#查询
MATCH (n:person) where n.name='小明' or n.name='小刚' RETURN n 
#创建关系 
match (n:person),(m:person) where n.name='小明' and m.name='小刚' 
create (n)-[r:同学]->(m) return n.name,type(r),m.name

DELETE 的使用

  • 先删除关系,再删除节点
# 删除节点 (前提:节点不存在关系) 
MATCH (n:person{name:"小明"}) delete n 
# 删除关系 
MATCH (n:person{name:"小明"})<-[r]-(m) delete r return type(r)

REMOVE 移除属性

#创建
create (n:student:person {name:'张三',age:18})
#删除标签
match (n:person {name:'张三'}) remove n:person return n
#删除属性
MATCH (n:student {name:'张三'}) remove n.age RETURN n

SET 用法

向现有节点或关系添加新属性;
添加或更新属性值;

#更新属性值
MATCH (n:student {name:"张三"}) set n.name='张四' return n
#添加属性值
MATCH (n:student {name:"张四"}) set n.age=20 return n

ORDER BY 排序

默认按升序排序;
降序需要使用DESC子句;

#按照 id 降序排列
MATCH (n:`斗破`) RETURN id(n),n.name order by id(n) desc

UNION 的使用

#UNION 不返回重复的行
MATCH (n:stu) RETURN n.name as name 
UNION 
MATCH (m:per) RETURN m.name as name 

#UNION ALL 返回重复的行
MATCH (n:stu) RETURN n.name as name 
UNION all 
MATCH (m:per) RETURN m.name as name

NULL 值

判断节点或关系的属性的缺失或未定义

sex值设置为''(['']不算null)
match (n:student {name:'张三'}) set n.age=18,n.sex='' return n
查询sex值不为null的节点
match (n:student {name:"张三"}) where n.sex is not null return n

IN 的使用(没有not in)

为CQL命令提供值的集合

match (n:student) where n.name in["张三","小红"] return n.name

INDEX索引

# 创建索引 
create index on :`stu` (name) 
# 删除索引 
drop index on :`stu` (name)

UNIQUE约束

#创建唯一约束 
create constraint on (n:stu) assert n.name is unique 
#删除唯一约束 
drop constraint on (n:stu) assert n.name is unique

DISTINCT 去重复

match (n:'student') return distinct(n.name)