当前位置: 首页 > news >正文

【大模型:知识图谱】--5.neo4j数据库管理(cypher语法2)

目录

1.节点语法

1.1.CREATE--创建节点

1.2.MATCH--查询节点

1.3.RETURN--返回节点

1.4.WHERE--过滤节点

2.关系语法

2.1.创建关系

2.2.查询关系

3.删除语法

3.1.DELETE 删除

3.2.REMOVE 删除

4.功能补充

4.1.SET (添加属性)

4.2.NULL 值

4.3.ORDER BY (排序)

4.4.LIMIT 和 SKIP (限制)


1.节点语法

Cypher 采用一对圆括号来表示节点。如:(), (foo)。下面是一些常见的节点表示法:

// 表示一个节点,但是没有属性
()
// 节点变量为 matrix
(matrix)
// 节点标签为 Movie 的节点
(:Movie)
// 节点变量为 matrix,节点标签为 Movie 的节点
(matrix:Movie)
// 节点变量为 matrix,节点标签为 Movie,节点属性 title 为 ET·Go 的节点
(matrix:Movie {title: "ET·Go"})
// 节点变量为 matrix,节点标签为 Movie,节点属性 title 为 Spider Man ,released 为 1997 的节点
(matrix:Movie {title: "Spider Man", released: 1997})

1.1.CREATE--创建节点

create 语句是创建模型语句用来创建数据模型。

// 创建简单节点
create (n)
// 创建多个节点
create (n),(m)
// 创建带标签和属性的节点并返回节点
create (n:person {name:"如来"}) return n

1.2.MATCH--查询节点

Neo4j CQL MATCH 命令用于

  • 从数据库获取有关节点和属性的数据;
  • 从数据库获取有关节点,关系和属性的数据。

match (Person:person {name: "如来"}) return Person

Person:变量(任意)

person:标签

{}:属性

():节点

1.3.RETURN--返回节点

Neo4j CQL RETURN 子句用于

  • 检索节点的某些属性
  • 检索节点的所有属性
  • 检索节点和关联关系的某些属性
  • 检索节点和关联关系的所有属性

注意:RETURNMATCH 两个需要搭配使用。

1.4.WHERE--过滤节点

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

MATCH (n:person) where n.name='孙悟空' or n.name='猪八戒' RETURN n 

2.关系语法

Cypher 使用一对短横线(即“–”)表示:一个无方向关系。有方向的关系在其中一端加上一个箭头(即“<–”或“–>”)。方括号表达式 […] 可用于添加关系信息。里面可以包含变量、属性和或者类型信息。关系的常见表达方式如下:

// 无方向关系
--
// 有方向关系,指向一个节点
-->
// 有方向的关系,关系变量为 reole
-[role]->
// 有方向的关系,关系标签为 ACTED_IN
-[:ACTED_IN]->
// 有方向的关系,关系标签为 ACTED_IN,关系变量为 role
-[role:ACTED_IN]->
// 有方向的关系,关系标签为 ACTED_IN,关系变量为 role,属性 roles 的值为 Neo
-[role:ACTED_IN {roles: ["Neo"]}]->

2.1.创建关系

Neo4j 图数据库遵循属性图模型来存储和管理其数据。 根据属性图模型,关系应该是定向的。 否则,Neo4j 将抛出一个错误消息。 基于方向性,Neo4j 关系被分为两种主要类型。

  • 单向关系
  • 双向关系

使用新节点创建关系

CREATE (n:person {name:'杨戬'})-[r:师傅]->(m:person {name:'玉鼎真人'}) return type(r)

create (n:person {name:'沙僧'}),(m:person{name:'唐僧'}) create (n)-[r:`师傅`{relation:'师傅'}]->(m) return r

2.2.查询关系

MATCH (a)-[r:师傅]->(b)
RETURN a, r, b

3.删除语法

3.1.DELETE 删除

  • 删除节点;

  • 删除节点及相关节点和关系。

# 删除节点(前提:节点不存在关系)
MATCH (n:person {name:"白龙马"}) delete n;
# 删除关系
MATCH (n:person {name:"沙僧"})<-[r]-(m) delete r return type(r);

注意:删除结点的前提是节点没有关系。

3.2.REMOVE 删除

有时基于客户端要求,我们需要向现有节点或关系添加或删除属性。我们使用Neo4j CQL REMOVE 子句来删除节点或关系的现有属性。

  • 删除节点或关系的标签;

  • 删除节点或关系的属性。

  // 删除属性MATCH (n:role {name:"fox"}) remove n.age return n;// 创建节点(两个标签)CREATE (m:role:person {name:"cat233"})// 删除标签MATCH (m:role:person {name:"cat233"}) remove m:person return m

4.功能补充

4.1.SET (添加属性)

有时,根据我们的客户端要求,我们需要向现有节点或关系添加新属性。要做到这一点,Neo4j CQL 提供了一个SET子句。

向现有节点或关系添加新属性;
添加或更新属性值。 MATCH (n:role {name:"cat"}) set n.age=32 return n

4.2.NULL 值

Neo4j CQL将空值视为对节点或关系的属性的缺失值或未定义值。

当我们创建一个具有现有节点标签名称但未指定其属性值的节点时,它将创建一个具有NULL属性值的新节点。

// 查询是否为空
match (n:`西游`) where n.label is null return id(n),n.name,n.tail,n.label

4.3.ORDER BY (排序)

Neo4j CQL 在 MATCH 命令中提供了 ORDER BY 子句,对 MATCH 查询返回的结果进行排序。 我们可以按升序或降序对行进行排序。默认情况下,它按升序对行进行排序。 如果我们要按降序对它们进行排序,我们需要使用 DESC 子句。

// 按 id 进行降序
MATCH (n:`西游`) RETURN id(n),n.name order by id(n) desc

4.4.LIMIT 和 SKIP (限制)

Neo4j CQL 已提供 LIMIT 子句和 SKIP 来过滤或限制查询返回的行数。 LIMIT 返回前几行,SKIP 忽略前几行。

// 前两行 
MATCH (n:`西游`) RETURN n LIMIT 2 
// 忽略前两行 
MATCH (n:person) RETURN n SKIP 2

相关文章:

  • OpenCV C/C++ 视频播放器 (支持调速和进度控制)
  • 图片压缩工具 | 图片属性详解及读取解析元数据
  • python入门(1)
  • MySQL权限详解
  • PCB设计教程【大师篇】——产品设计流程
  • 交叉相关和卷积
  • css-塞贝尔曲线
  • Windows 下载、安装、配置和使用Node
  • 2. 库的操作
  • 蚂蚁森林自动收能量助手:Ant_Forest_1_5_4_3绿色行动新选择
  • LangChain深度解析:LLM应用开发利器
  • Python应用函数的定义与调用(一)
  • ideal2022.3.1版本编译项目报java: OutOfMemoryError: insufficient memory
  • string类
  • JavaScript性能优化实战:深入探讨JavaScript性能瓶颈与优化技巧
  • Apereo CAS
  • Transformer-BiLSTM、Transformer、CNN-BiLSTM、BiLSTM、CNN五模型时序预测
  • React组件基础
  • C#中的依赖注入Dependency Injection, DI
  • JavaSec-专题-反序列化
  • 安卓app软件公司/seo官网
  • 广州割双眼皮网站建设/怎样在百度上宣传自己的产品
  • 免费天眼查公司查询/深圳网站优化公司哪家好
  • html5 网站logo/怎么制作自己的个人网站
  • 广东移动网站/网店运营怎么学
  • 网站建设管理自查报告/全球搜索引擎大全