目錄
一,Neo4j的增
1.1.新增節點
1.2.新增關系
1.2.1創建節點時,創建關系
1.2.2在已有的節點上,創建關系
二,Neo4j的刪除
2.1刪除節點
?2.1.1無關系的節點刪除
2.1.2 有關系的節點刪除
三,節點修改
3.1 給節點修改標簽
3.2 修改,新增屬性
四,查找
4.1 查找節點
4.2 查找關系
一,Neo4j的增
1.1.新增節點
create (n:Persion {name:'劉詩詩',age:32})
解釋:
CREATE
:這是Cypher查詢中的關鍵字,用于指示數據庫創建新的節點或關系(n)
:這是一個占位符,代表將要創建的節點。n
?是一個變量名,你可以使用任何合法的變量名來代替它。Person
:這部分定義了節點的標簽(Label)。在這里,Person
?是一個標簽,表示這個節點屬于Person這一類別。在Neo4j中,標簽可以用來表示實體或概念的類型。- {name:'劉詩詩',age:32}:這是一個屬性(Property)映射,用來給節點設置屬性。在這個例子中,節點?
n
?有兩個屬性:name
?和?age
。name
?屬性被賦予了字符串值?'
劉詩詩'
,而?age
?屬性被賦予了整數值?32
。綜合起來,這條Cypher語句的作用是創建一個新的節點,這個節點具有?
Person
?標簽,并且有兩個屬性:name
?屬性的值為?'我'
,age
?屬性的值為?31
。這個節點在數據庫中是獨一無二的,除非已經存在一個具有相同標簽和屬性值的節點。
在創建一個Person標簽的節點
?查看庫數據
刪除數據,在重新創建下節點
?查看數據
1.2.新增關系
1.2.1創建節點時,創建關系
同1.1語句,創建節點的時候,新增節點間的關系
create(n:Persion{name:"高飛",age:28})-[:日出場費{金額:50}]->(p:Persion{name:"林青霞",age:54})
?
- create: 是一個關鍵字,用于在數據庫中創建新的節點和關系。
- (n:Persion{name:"高飛",age:28}):創建一個新的節點 n,這個節點屬于 Persion標簽,并具有兩個屬性:name 屬性的值為 "高飛",age 屬性的值為 "28"。
- -[:日出場費{金額:50}]:創建一個新的關系,這個關系連接兩個節點,關系的類型是 日出場費,并且這個關系有一個屬性 金額,其值為 50。
- ->(p:Persion{name:"林青霞",age:54}):指明了關系的另一個節點 p,這個節點同樣屬于 Persion標簽,并具有 name 和 age 兩個屬性,分別設置為 "林青霞和 "54"。
所以,整體來看,這段代碼的作用是創建兩個 Persion類型的節點,一個名為 "高飛",年齡為 28,另一個名為 "林青霞",年齡為 54,并在兩者之間創建了一個類型為 日出場費 的關系,該關系有一個屬性 金額,其值為 50。
1.2.2在已有的節點上,創建關系
MATCH (n1:Persion),(n2:Persion) WHERE n1.name='劉詩詩' AND n2.name='我' CREATE(n1)-[:貸款{金額:3000}] ->(n2) return n1,n2
二,Neo4j的刪除
2.1刪除節點
?2.1.1無關系的節點刪除
create(n:Persion{name:"北喬峰",age:30})
刪除操作
Match (n:Persion{name:"北喬峰"}) delete n
檢查,已刪除
2.1.2 有關系的節點刪除
有關系存在的節點在刪除時,需要先刪除關系,否則會報錯,提示也先刪除關系
在圖數據庫或圖模型中,節點和關系是一種基本的結構。關系用于連接節點,表示它們之間的連接。在刪除一個節點之前,您必須先刪除它的所有關系,否則系統將無法刪除該節點。
刪除關系
刪除關系之前,需要找到這個關系
match (p:Persion{name:"高飛"})-[f:日出場費] ->(n:Persion{name:"林青霞"}) delete f
兩個節點的名稱不能是一樣的,若都是p,則匹配不到數據。
一個p,一個n,不一樣,才能執行。刪除關系后,節點還是存在的。
若果關系找的不對,如上。真實的關系是
match (p:Persion{name:"高飛"})-[f:日出場費] ->(n:Persion{name:"林青霞"}) delete f
而如果寫的語句的關系是
match (p:Persion{name:"林青霞"})-[f:日出場費] ->(n:Persion{name:"高飛"}) delete f
執行語句,刪除報錯。
同時刪除節點和關系
在刪除的時候,除了關系f外,將節點名稱也加上,就都刪除了。
match (p:Persion{name:"高飛"})-[f:日出場費] ->(n:Persion{name:"林青霞"}) delete f,p,n
先恢復下節點關系
match (p:Persion),(n:Persion) where p.name="高飛" and n.name="林青霞" create (p)-[:日出場費{金額:30}] ->(n) return p,n
在執行上面的命令
2.1.3 刪除所有
MATCH (n:ru_yi_zhuan) detach delete n;
?
?
我們來逐部分解析這條語句:
1.?MATCH (n:ru_yi_zhuan)
- MATCH?是用于查找圖中節點或關系的關鍵字。
(n:ru_yi_zhuan)
?表示查找所有類型為?ru_yi_zhuan
?的節點,并將這些節點賦值給變量?n
。
n
?是一個變量,代表每個匹配到的節點。:ru_yi_zhuan
?是一個標簽,表示這些節點屬于?ru_yi_zhuan
?類型。標簽可以用來對節點進行分類。2.?detach
- DETACH?是一個關鍵字,用于刪除節點時,自動刪除該節點與其他節點之間的所有關系。
- 通常,如果你刪除一個節點并且沒有使用?
DETACH
,如果該節點與其他節點有關系,Neo4j 會拒絕刪除該節點(因為數據庫會保護圖的完整性,防止孤立節點)。使用?DETACH
?后,它會自動刪除與該節點相連的所有關系。3.?DELETE n
- DELETE?是用來刪除節點或關系的關鍵字。
n
?是之前通過?MATCH
?查找到的節點變量,DELETE n
?會刪除這些節點。總結:
這條查詢的作用是:
- 查找圖數據庫中所有標簽為?
ru_yi_zhuan
?的節點。- 刪除這些節點及它們與其他節點之間的所有關系(通過?
DETACH
)。- 最后,刪除這些節點本身。
注意: 運行這條語句會永久刪除所有匹配到的
ru_yi_zhuan
類型的節點及其關系,請確保在執行前已經備份了數據或者確認操作無誤。
三,節點修改
改操作可以改節點現有的屬性或者標簽,也可以增加節點新的屬性或者標簽。
選中節點后,即可看到節點的id,id值是庫自動生成
3.1 給節點修改標簽
match(t:Persion) where id(t)=2 set t.age = 22
3.2 修改,新增屬性
match(t:Persion) where id(t)=2 set t.sex="男",t.likes="錢"
四,查找
4.1 查找節點
語法最后,要有return
match(p:Persion) where p.sex = '男' return p
?
4.2 查找關系
match(p:Persion) -[:貸款] -> (np:Persion) return p,np
match(p:Persion) -[:貸款] -> (np:Persion):
- MATCH :是用來在圖形數據庫中查找模式的。這里,它尋找所有符合 Persion類型的節點(p 和 n)。
- -[:貸款]-> :是關系路徑,表示從一個 Persion節點(p)通過一個名為 借款 的關系到達另一個 Persion節點(np)。-> 指向關系的方向。
return p, np:
- return 語句用于返回查詢結果。在這個查詢中,它會返回兩個節點,p 和 np,作為查詢結果的每一行。每行將包含匹配到的 Persion對的組合。
所以,這個查詢的目的是找出所有 Persion類型的節點,其中有一個關系是 貸款,并且這個關系連接了兩個 Persion節點,并返回這兩個節點。
結果將是一個包含借款關系的 Persion對列表。
新建一個關系,此時,貸款 的關系有2條,4個節點,查詢的結果為何呢。
?查詢正確,2個關系,4個節點。