您的位置:58脚本 > neo4j 删除 Neo4j CQL - REMOVE删除

neo4j 删除 Neo4j CQL - REMOVE删除

2023-03-22 16:32 neo4j教程

neo4j 删除 Neo4j CQL - REMOVE删除

neo4j 删除

Neo4j 是一个基于图形数据库的 NoSQL 数据库,它可以用来存储和管理复杂的关系数据。它使用一种叫做图形数据库的数据模型,这种数据模型可以很好地表达多对多的关系。

删除是 Neo4j 中最常见的操作之一,它可以用来删除不再需要的节点、关系或者属性。在 Neo4j 中,删除节点或者关系是一个相对容易的过程,但是要注意,删除节点或者关系会导致所有与之相关的信息都会丢失。

MATCH (n) 
WHERE n.name = 'John' 
DELETE n

上面这条语句将会删除名字为 John 的所有节点。如果想要删除特定节点上的特定属性,可以使用 REMOVE 关键字:

MATCH (n) 
WHERE n.name = 'John' 
REMOVE n.age

上面这条语句将会从名字为 John 的所有节点上删除 age 属性。如果想要删除特定关系,也可以使用 DELETE 关键字:

MATCH (n)-[r:KNOWS]->(m) 
WHERE n.name = 'John' AND m.name = 'Mary' 
DELETE r

上面这条语句将会删除 John 和 Mary 之间 KNOWS 类型的关系。此外,Neo4j 还有一些特定针对不同场合而开发出来的命令,例如 DETACH DELETE 命令就是用于快速删除单独节点或者单独关系的命令。

Neo4j CQL - REMOVE删除

有时基于我们的客户端要求,我们需要向现有节点或关系添加或删除属性。

我们使用Neo4j CQL SET子句向现有节点或关系添加新属性。

我们使用Neo4j CQL REMOVE子句来删除节点或关系的现有属性。


Neo4j CQL REMOVE命令用于

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

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

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

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

  • 这两个命令不应单独使用。
  • 两个命令都应该与MATCH命令一起使用。

删除节点/关系的属性

我们可以使用相同的语法从数据库中永久删除节点或关系的属性或属性列表。


REMOVE属性子句语法

REMOVE <property-name-list>
S.No.语法元素描述
1。REMOVE它是一个Neo4j CQL关键字。
2。<property-name-list>它是一个属性列表,用于永久性地从节点或关系中删除它。


<property-name-list> <属性名称列表>语法

<node-name>.<property1-name>,
<node-name>.<property2-name>, 
.... 
<node-name>.<propertyn-name> 


语法说明:

S.No.语法元素描述
1。<node-name>它是节点的名称。
2。<property-name>它是节点的属性名称。


注意 -

  • 我们应该使用逗号(,)运算符来分隔标签名称列表。
  • 我们应该使用dot(。)运算符来分隔节点名称和标签名称。


例如:

此示例演示如何创建节点并从数据库中永久删除此节点的属性。


步骤1 - 打开Neo4j数据浏览器


打开Neo4j数据浏览器

步骤2 -在数据浏览器上键入以下命令

CREATE (book:Book {id:122,title:"Neo4j Tutorial",pages:340,price:250}) 


CREATE (book:Book {id:122,title:"Neo4j Tutorial",pages:340,price:250})


步骤3 -点击“执行”按钮并观察结果。


两个SQL命令
它类似于以下两个SQL命令在一个镜头。

CREATE TABLE BOOK(
	id number,
	title varchar2(20),
	pages number,
	price number
);
INSERT INTO BOOK VALUES (122,'Neo4j Tutorial',340,250);

这里我们可以观察到一个标签和一个节点有4个属性被成功创建。


步骤4 -在数据浏览器上键入以下命令

MATCH (book : Book)
RETURN book

它类似于下面的SQL命令。

SELECT * FROM BOOK;


步骤5 -点击“执行”按钮并观察结果。


4个属性
这里我们可以观察到这个书节点有4个属性。


步骤6 -在数据浏览器上键入以下命令,然后单击执行按钮从书节点中删除“price”属性。

MATCH (book { id:122 })
REMOVE book.price
RETURN book

它类似于下面的SQL命令。

ALTER TABLE BOOK REMOVE COLUMN PRICE;
SELECT * FROM BOOK WHERE ID = 122;


在这里,我们只能看到节点书的3个属性,因为“价格”属性被删除。

有时基于客户端要求,我们需要删除一些现有的属性到节点或关系。

我们需要使用REMOVE子句来删除一个属性或一组属性。


例如

此示例演示如何从数据库中永久删除现有节点的属性。


步骤1打开Neo4j数据浏览器


步骤2 - 在数据浏览器上键入以下命令

MATCH (dc:DebitCard) 
RETURN dc


MATCH (dc:DebitCard)  RETURN dc


步骤3 -点击“执行”按钮并观察结果。


DebitCard节点包含6个属性
这里我们可以观察到DebitCard节点包含6个属性。


步骤4 -在数据浏览器上键入以下命令

MATCH (dc:DebitCard) 
REMOVE dc.cvv
RETURN dc


MATCH (dc:DebitCard)  REMOVE dc.cvv RETURN dc


步骤5 -点击“执行”按钮并观察结果。



如果我们观察输出,“cvv”属性从“DebitCard”节点中删除。


删除节点/关系的标签

我们可以使用相同的语法从数据库中永久删除节点或关系的标签或标签列表。


REMOVE一个Label子句语法:

REMOVE <label-name-list> 

S.No.语法元素描述
1.REMOVE它是一个Neo4j CQL关键字。
2.<label-name-list>它是一个标签列表,用于永久性地从节点或关系中删除它。


<label-name-list>语法

<node-name>:<label2-name>, 
.... 
<node-name>:<labeln-name> 


语法说明:

S.No.语法元素描述
1。<node-name>
<节点名称>
它是一个节点的名称。
2。<label-name>
<标签名称>
这是一个节点的标签名称。

注意 -

  • 我们应该使用逗号(,)运算符来分隔标签名称列表。

  • 我们应该使用colon(:)运算符来分隔节点名和标签名。

例如:

此示例演示如何从数据库永久删除不需要的标签到节点。


步骤1 - 打开Neo4j数据浏览器


步骤2 - 在数据浏览器上键入以下命令

MATCH (m:Movie) RETURN m


MATCH (m:Movie) RETURN m


步骤3 -点击“执行”按钮并观察结果。


执行结果


步骤4 -点击节点以查看其属性窗口。


查看其属性窗口
在这里我们可以观察到四个标签可用于单个节点。


根据我们的客户要求,我们需要删除“图片”属性到此节点。


步骤5 -在浏览器上键入以下命令,然后单击执行按钮。

MATCH (m:Movie) 
REMOVE m:Picture


MATCH (m:Movie)  REMOVE m:Picture

步骤6 -点击“执行”按钮并观察结果。


一个标签从数据库永久删除的节点
在这里我们可以观察到一个标签从数据库永久删除的节点。


步骤7 -在数据浏览器上键入以下命令

MATCH (m:Movie) RETURN m


MATCH (m:Movie) RETURN m


步骤8 -点击“执行”按钮并观察结果。


结果


步骤9 -单击节点以查看其属性窗口。


命令已成功删除
这里我们可以观察到这个节点只有三个标签:Movie,Cinema,Film from Properties Window。 这意味着我们的上一个命令已成功删除图片标签。


阅读全文
以上是58脚本为你收集整理的neo4j 删除 Neo4j CQL - REMOVE删除全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
  • neo4j如何合并关系 Neo4j CQL - 合并

    neo4j如何合并关系 Neo4j CQL - 合并

    Neo4j使用CQL MERGE命令 - 创建节点,关系和属性为从数据库检索数据 MERGE命令是CREATE命令和MATCH命令的组合。 MERGE = CREATE ...

  •  MS Access通配符

    MS Access通配符

    通配符是可以在文本值中代表未知字符的特殊字符,可用于查找具有相似但不相同数据的多个项目。通配符还可以帮助在指定的模式匹配...

  •  SQLite SQL注入

    SQLite SQL注入

    如果您的站点允许用户通过网页输入,并将输入内容插入到 SQLite 数据库中,这个时候您就面临着一个被称为 SQL 注入的安全问题。...

  •  SQLite PRAGMA

    SQLite PRAGMA

    SQLite 的 PRAGMA 命令是一个特殊的命令,可以用在 SQLite 环境内控制各种环境变量和状态标志。一个 PRAGMA 值可以被读取,也可...

  • mariadb 函数 MariaDB 空值

    mariadb 函数 MariaDB 空值

    使用NULL值时,请记住它们是未知值。 它们不是空字符串或零,它们是有效值。 在表创建中,列规范允许将它们设置为接受空值,或拒...

  • mysql临时表会占用运行内存吗? MariaDB 临时表

    mysql临时表会占用运行内存吗? MariaDB 临时表

    由于速度或一次性数据,一些操作可能受益于临时表。 临时表的生命期在会话终止时结束,无论是从命令提示符,PHP脚本还是通过客户...

  • mariadb删除数据库操作 MariaDB 删除数据库

    mariadb删除数据库操作 MariaDB 删除数据库

    在MariaDB中创建或删除数据库需要特权,通常仅授予root用户或管理员。 在这些帐户下,您有两个删除数据库的选项:mysqladmin二进...

  •  PostgreSQL tsm_system_rows

    PostgreSQL tsm_system_rows

    F.41.1. 示例 tsm_system_rows模块提供了表采样方法 SYSTEM_ROWS,它可以用在SELECT命令的TABLESAMPLE子句中。这种表采样方...

  •  PostgreSQL vacuumlo

    PostgreSQL vacuumlo

    vacuumlo — 从PostgreSQL数据库中移除孤立的大对象大纲vacuumlo [option...] dbname...描述 vacuumlo是一个从PostgreSQL数据库...

  •  PostgreSQL 限制

    PostgreSQL 限制

    表K.1描述了PostgreSQL的各种硬性限制。 但是,在达到绝对硬限制之前,可能会先受到现实的限制,例如性能限制或可用磁盘空间。表...

© 2024 58脚本 58jiaoben.com 版权所有 联系我们
桂ICP备12005667号-28 Powered by CMS