一、MATCH命令

Neo4j CQL MATCH 命令用于

  • 从数据库获取有关节点和属性的数据
  • 从数据库获取有关节点,关系和属性的数据
MATCH (
   节点名:标签名
   { 	
      属性名1:属性值1,
      ........
      属性名n:属性值n
   }
);
# e.g
# 查询Dept下的内容
MATCH (dept:Dept);
# 查询User标签中 name 属性为 Tom 的节点
MATCH  (n: User{name: "Tom" });
# 查询User标签中 name 属性为 Tom 的节点,使用(where命令)
MATCH (n:User) WHERE n.name = "Tom"

二、CREATE命令

Neo4j使用CQL CREATE 命令

  • 创建节点
CREATE (
   [节点名]:标签名
   { 	
      属性名1:属性值1,
      ........
      属性名n:属性值n
   }
);
# e.g
# 创建一个Person类的节点,名为Mike,年龄18
CREATE (node:Person {age:18, name:"Mike"})
  • 创建关系
CREATE (节点1:标签1)-[关系名:关系标签]->(节点2:标签2)
# e.g
# 对 节点p1 与 p2 建立 LIKES 关系
CREATE (p1:Profile1)-[r1:LIKES]->(p2:Profile2)
  • 为节点或关系创建单个或多个标签
CREATE (
   节点名:标签名1,标签名2...标签名n
);
# e.g
# 为 节点m 创建 Movie、Cinema、Film、Picture 标签
CREATE (m:Movie:Cinema:Film:Picture)

三、RETURN子句

Neo4j CQL RETURN子句用于 -

  • 检索节点的某些属性
  • 检索节点的所有属性
  • 检索节点和关联关系的某些属性
  • 检索节点和关联关系的所有属性
RETURN 
   节点名.属性名1,
   ........
   节点名.属性名n;
#---------------------------
RETURN 节点名;
# e.g
# 返回 节点n 的 name 属性
RETURN n.name

四、WHERE子句

像SQL一样,Neo4j CQL在CQL MATCH命令中提供了WHERE子句来过滤MATCH查询的结果。

WHERE 条件;

Neo4j CQL中的布尔运算符 Neo4j支持以下布尔运算符在Neo4j CQL WHERE子句中使用以支持多个条件。

在这里插入图片描述

Neo4j CQL中的比较运算符 Neo4j 支持以下的比较运算符,在 Neo4j CQL WHERE 子句中使用来支持条件。

在这里插入图片描述

五、DELETE删除

Neo4j使用CQL DELETE子句

  • 删除节点。
  • 删除节点及相关节点和关系。
DELETE 节点1,节点2,...关系1,关系2...;
# e.g
# 删除 节点 cc 以及 节点 c 以及两者的关系 rel
MATCH (cc: CreditCard)-[rel]-(c:Customer) 
DELETE cc,c,rel

六、REMOVE删除

Neo4j CQL REMOVE命令用于

  • 删除节点或关系的标签
  • 删除节点或关系的属性

Neo4j CQL DELETE和REMOVE命令之间的主要区别

  • DELETE操作用于删除节点和关联关系。
  • REMOVE操作用于删除标签和属性。

Neo4j CQL DELETE和REMOVE命令之间的相似性

  • 这两个命令不应单独使用。
  • 两个命令都应该与MATCH命令一起使用。
REMOVE 
  节点名.属性1,
  节点名.属性2,
  .... 
  节点名.属性n,
# e.g
# 删除 节点 n 的 name 属性
MATCH (n:Person) 
REMOVE n.name

七、SET子句

Neo4j CQL 已提供 SET 子句来执行以下操作。

  • 向现有节点或关系添加新属性。
  • 添加或更新属性值。
SET  
  节点.属性1 =1,
  节点.属性2 =2,
  .... 
  节点.属性n = 值n,
# e.g
# 将节点n 的 name 属性设置为 Jack
MATCH (n:Person)
SET n.name = 'Jack'

八、LIMIT与SKIP子句

Neo4j CQL提供“LIMIT”与“SKIP”子句来过滤或限制查询返回的行数。

  • “LIMIT”修整CQL查询结果集底部的结果;
  • “SKIP”修整CQL查询结果集顶部的结果。
LIMIT 限制行数
SKIP 限制行数

~综合案例

①查

# 根据节点属性值 返回 具体单个节点
MATCH  (n: User{name:  "TOM" }) return  n;

# 根据对象返回对象中的部分属性并限制行数
MATCH (n:Person) RETURN n.name LIMIT 10;

# 根据属性的条件区间 返回 所在区间的对象属性
MATCH (n: Movie) WHERE n.released >= 1990 AND n.released < 2000 RETURN n.title

# 查询 节点对象 、其关系 以及 关系的节点
MATCH (tom:Person {name: "Tom Hanks"})-[:ACTED_IN]->(tomHanksMovies) RETURN tom,tomHanksMovies

②改

# 修改属性
MATCH (a:User{name:"JACK",age:12}) SET a.age=5 return a;

③增

# 创建一个节点
CREATE  (k : Person{ name:'Mike',born:2002}) RETURN k;

# 创建多个节点
CREATE (:User{name:"爷爷",age:76}),
       (:User{name:"奶奶",age:74}),
       (:User{name:"爸爸",age:43}),
       (:User{name:"妈妈",age:41});

# 基于现有节点 创建一个关系
MATCH (f:User{name:"爸爸"}) MATCH (m:User{name:"妈妈"}) CREATE (f)-[r:夫妻]->(m) RETURN f,r,m

# 创建 节点 + 关系
CREATE (:User{name:"Jack",age:12})-[:夫妻]->(:User{name:"Rose",age:9})

④删

# 删除语句 先删关系在删节点。
MATCH (n:User{name:"Jack"})-[r]-() WHERE n.age=0.6 DELETE r, n;
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐