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 SET子句向现有节点或关系添加新属性。
我们使用Neo4j CQL REMOVE子句来删除节点或关系的现有属性。
Neo4j CQL REMOVE命令用于
Neo4j CQL DELETE和REMOVE命令之间的主要区别 -
Neo4j CQL DELETE和REMOVE命令之间的相似性 -
我们可以使用相同的语法从数据库中永久删除节点或关系的属性或属性列表。
REMOVE <property-name-list>
S.No. | 语法元素 | 描述 |
---|---|---|
1。 | REMOVE | 它是一个Neo4j CQL关键字。 |
2。 | <property-name-list> | 它是一个属性列表,用于永久性地从节点或关系中删除它。 |
<node-name>.<property1-name>, <node-name>.<property2-name>, .... <node-name>.<propertyn-name>
语法说明:
S.No. | 语法元素 | 描述 |
---|---|---|
1。 | <node-name> | 它是节点的名称。 |
2。 | <property-name> | 它是节点的属性名称。 |
注意 -
此示例演示如何创建节点并从数据库中永久删除此节点的属性。
步骤1 - 打开Neo4j数据浏览器
步骤2 -在数据浏览器上键入以下命令
CREATE (book:Book {id:122,title:"Neo4j Tutorial",pages:340,price:250})
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 -点击“执行”按钮并观察结果。
步骤6 -在数据浏览器上键入以下命令,然后单击执行按钮从书节点中删除“price”属性。
MATCH (book { id:122 }) REMOVE book.price RETURN book
它类似于下面的SQL命令。
ALTER TABLE BOOK REMOVE COLUMN PRICE; SELECT * FROM BOOK WHERE ID = 122;
我们需要使用REMOVE子句来删除一个属性或一组属性。
此示例演示如何从数据库中永久删除现有节点的属性。
步骤1 - 打开Neo4j数据浏览器
步骤2 - 在数据浏览器上键入以下命令
MATCH (dc:DebitCard) RETURN dc
步骤4 -在数据浏览器上键入以下命令
MATCH (dc:DebitCard) REMOVE dc.cvv RETURN dc
如果我们观察输出,“cvv”属性从“DebitCard”节点中删除。
我们可以使用相同的语法从数据库中永久删除节点或关系的标签或标签列表。
REMOVE <label-name-list>
S.No. | 语法元素 | 描述 |
---|---|---|
1. | REMOVE | 它是一个Neo4j CQL关键字。 |
2. | <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
根据我们的客户要求,我们需要删除“图片”属性到此节点。
步骤5 -在浏览器上键入以下命令,然后单击执行按钮。
MATCH (m:Movie) REMOVE m:Picture
步骤7 -在数据浏览器上键入以下命令
MATCH (m:Movie) RETURN m
步骤8 -点击“执行”按钮并观察结果。
步骤9 -单击节点以查看其属性窗口。
Neo4j使用CQL MERGE命令 - 创建节点,关系和属性为从数据库检索数据 MERGE命令是CREATE命令和MATCH命令的组合。 MERGE = CREATE ...
SQLite 的 PRAGMA 命令是一个特殊的命令,可以用在 SQLite 环境内控制各种环境变量和状态标志。一个 PRAGMA 值可以被读取,也可...
由于速度或一次性数据,一些操作可能受益于临时表。 临时表的生命期在会话终止时结束,无论是从命令提示符,PHP脚本还是通过客户...
在MariaDB中创建或删除数据库需要特权,通常仅授予root用户或管理员。 在这些帐户下,您有两个删除数据库的选项:mysqladmin二进...
F.41.1. 示例 tsm_system_rows模块提供了表采样方法 SYSTEM_ROWS,它可以用在SELECT命令的TABLESAMPLE子句中。这种表采样方...
vacuumlo — 从PostgreSQL数据库中移除孤立的大对象大纲vacuumlo [option...] dbname...描述 vacuumlo是一个从PostgreSQL数据库...