Neo4j CQL - REMOVE刪除

2020-11-18 14:30 更新

有時基于我們的客戶端要求,我們需要向現(xiàn)有節(jié)點或關(guān)系添加或刪除屬性。

我們使用Neo4j CQL SET子句向現(xiàn)有節(jié)點或關(guān)系添加新屬性。

我們使用Neo4j CQL REMOVE子句來刪除節(jié)點或關(guān)系的現(xiàn)有屬性。


Neo4j CQL REMOVE命令用于

  • 刪除節(jié)點或關(guān)系的標簽
  • 刪除節(jié)點或關(guān)系的屬性

Neo4j CQL DELETE和REMOVE命令之間的主要區(qū)別 - 

  • DELETE操作用于刪除節(jié)點和關(guān)聯(lián)關(guān)系。
  • REMOVE操作用于刪除標簽和屬性。

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

  • 這兩個命令不應單獨使用。
  • 兩個命令都應該與MATCH命令一起使用。

刪除節(jié)點/關(guān)系的屬性

我們可以使用相同的語法從數(shù)據(jù)庫中永久刪除節(jié)點或關(guān)系的屬性或?qū)傩粤斜怼?


REMOVE屬性子句語法

REMOVE <property-name-list>
S.No.語法元素描述
1。REMOVE它是一個Neo4j CQL關(guān)鍵字。
2。<property-name-list>它是一個屬性列表,用于永久性地從節(jié)點或關(guān)系中刪除它。


<property-name-list> <屬性名稱列表>語法

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


語法說明:

S.No.語法元素描述
1。<node-name>它是節(jié)點的名稱。
2。<property-name>它是節(jié)點的屬性名稱。


注意 -

  • 我們應該使用逗號(,)運算符來分隔標簽名稱列表。
  • 我們應該使用dot(。)運算符來分隔節(jié)點名稱和標簽名稱。


例如:

此示例演示如何創(chuàng)建節(jié)點并從數(shù)據(jù)庫中永久刪除此節(jié)點的屬性。


步驟1 - 打開Neo4j數(shù)據(jù)瀏覽器


打開Neo4j數(shù)據(jù)瀏覽器

步驟2 -在數(shù)據(jù)瀏覽器上鍵入以下命令

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 -點擊“執(zhí)行”按鈕并觀察結(jié)果。


兩個SQL命令
它類似于以下兩個SQL命令在一個鏡頭。

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

這里我們可以觀察到一個標簽和一個節(jié)點有4個屬性被成功創(chuàng)建。


步驟4 -在數(shù)據(jù)瀏覽器上鍵入以下命令

MATCH (book : Book)
RETURN book

它類似于下面的SQL命令。

SELECT * FROM BOOK;


步驟5 -點擊“執(zhí)行”按鈕并觀察結(jié)果。


4個屬性
這里我們可以觀察到這個書節(jié)點有4個屬性。


步驟6 -在數(shù)據(jù)瀏覽器上鍵入以下命令,然后單擊執(zhí)行按鈕從書節(jié)點中刪除“price”屬性。

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

它類似于下面的SQL命令。

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


在這里,我們只能看到節(jié)點書的3個屬性,因為“價格”屬性被刪除。

有時基于客戶端要求,我們需要刪除一些現(xiàn)有的屬性到節(jié)點或關(guān)系。

我們需要使用REMOVE子句來刪除一個屬性或一組屬性。


例如

此示例演示如何從數(shù)據(jù)庫中永久刪除現(xiàn)有節(jié)點的屬性。


步驟1打開Neo4j數(shù)據(jù)瀏覽器


步驟2 - 在數(shù)據(jù)瀏覽器上鍵入以下命令

MATCH (dc:DebitCard) 
RETURN dc


MATCH (dc:DebitCard)  RETURN dc


步驟3 -點擊“執(zhí)行”按鈕并觀察結(jié)果。


DebitCard節(jié)點包含6個屬性
這里我們可以觀察到DebitCard節(jié)點包含6個屬性。


步驟4 -在數(shù)據(jù)瀏覽器上鍵入以下命令

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


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


步驟5 -點擊“執(zhí)行”按鈕并觀察結(jié)果。



如果我們觀察輸出,“cvv”屬性從“DebitCard”節(jié)點中刪除。


刪除節(jié)點/關(guān)系的標簽

我們可以使用相同的語法從數(shù)據(jù)庫中永久刪除節(jié)點或關(guān)系的標簽或標簽列表。


REMOVE一個Label子句語法:

REMOVE <label-name-list> 

S.No.語法元素描述
1.REMOVE它是一個Neo4j CQL關(guān)鍵字。
2.<label-name-list>它是一個標簽列表,用于永久性地從節(jié)點或關(guān)系中刪除它。


<label-name-list>語法

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


語法說明:

S.No.語法元素描述
1。<node-name>
<節(jié)點名稱>
它是一個節(jié)點的名稱。
2。<label-name>
<標簽名稱>
這是一個節(jié)點的標簽名稱。

注意 -

  • 我們應該使用逗號(,)運算符來分隔標簽名稱列表。

  • 我們應該使用colon(:)運算符來分隔節(jié)點名和標簽名。

例如:

此示例演示如何從數(shù)據(jù)庫永久刪除不需要的標簽到節(jié)點。


步驟1 - 打開Neo4j數(shù)據(jù)瀏覽器


步驟2 - 在數(shù)據(jù)瀏覽器上鍵入以下命令

MATCH (m:Movie) RETURN m


MATCH (m:Movie) RETURN m


步驟3 -點擊“執(zhí)行”按鈕并觀察結(jié)果。


執(zhí)行結(jié)果


步驟4 -點擊節(jié)點以查看其屬性窗口。


查看其屬性窗口
在這里我們可以觀察到四個標簽可用于單個節(jié)點。


根據(jù)我們的客戶要求,我們需要刪除“圖片”屬性到此節(jié)點。


步驟5 -在瀏覽器上鍵入以下命令,然后單擊執(zhí)行按鈕。

MATCH (m:Movie) 
REMOVE m:Picture


MATCH (m:Movie)  REMOVE m:Picture

步驟6 -點擊“執(zhí)行”按鈕并觀察結(jié)果。


一個標簽從數(shù)據(jù)庫永久刪除的節(jié)點
在這里我們可以觀察到一個標簽從數(shù)據(jù)庫永久刪除的節(jié)點。


步驟7 -在數(shù)據(jù)瀏覽器上鍵入以下命令

MATCH (m:Movie) RETURN m


MATCH (m:Movie) RETURN m


步驟8 -點擊“執(zhí)行”按鈕并觀察結(jié)果。


結(jié)果


步驟9 -單擊節(jié)點以查看其屬性窗口。


命令已成功刪除
這里我們可以觀察到這個節(jié)點只有三個標簽:Movie,Cinema,F(xiàn)ilm from Properties Window。 這意味著我們的上一個命令已成功刪除圖片標簽。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號