Neo4j Cypher Query Language學(xué)習(xí)(一)

Neo4j是: ·一個開源 ·無Schema ·沒有SQL ·圖形數(shù)據(jù)庫

該篇文章主要內(nèi)容包括:

1.Neo4j?CQL -?CREATE命令:

2.Neo4j?CQL -?MATCH命令:

3.Neo4j CQL - RETUR命令

4.Neo4j?CQL -?MATCH &?RETURN命令:

5.Neo4j?CQL -?CREATE創(chuàng)建標(biāo)簽命令:

6.Neo4j?CQL -?WHERE命令:

7.Neo4j?CQL -?DELETE命令:

8.Neo4j?CQL -?REMOVE命令:


圖片來源:W3Cschool?Neo4j教程
圖片來源:W3Cschool?Neo4j教程??
圖片來源:W3Cschool?Neo4j教程


如何連接本地數(shù)據(jù)庫,請參考:Neo4j連接本地數(shù)據(jù)庫


1.Neo4j?CQL -?CREATE命令:

創(chuàng)建一個簡單節(jié)點:

語法:?CREATE(<node-name>:<label-name>)

語法: CREATE(節(jié)點名:節(jié)點標(biāo)簽名)

創(chuàng)建一個帶屬性的節(jié)點:

語法:?CREATE(<node-name>:<label-name> {<property1-name>:<property1-value>},...,<propertyn-name>:<propertyn-value>)

語法:?CREATE(節(jié)點名:節(jié)點標(biāo)簽名 {屬性字典})


創(chuàng)建一個簡單節(jié)點
創(chuàng)建一個帶屬性的節(jié)點
創(chuàng)建了帶Person標(biāo)簽的節(jié)點,屬性有(id,name,city,sex,age)


2.Neo4j?CQL -?MATCH命令:

3.Neo4j CQL - RETUR命令

4.Neo4j?CQL -?MATCH &?RETURN命令:

匹配節(jié)點

語法:?MATCH(<node-name>:<label-name>)

語法:?MATCH(節(jié)點名:節(jié)點標(biāo)簽名)

返回節(jié)點屬性

語法: RETURN(<node-name>.<property1-name>,...,<node-name>.<propertyn-name>)

語法: RETURN(節(jié)點名.屬性名1,...,節(jié)點名.屬性名n)

匹配+返回

語法:?MATCH?Command?

? ? ? ? ? ? RETURN?Command


匹配節(jié)點的標(biāo)簽為Person,并返回其age、name、city屬性值

MATCH(布口袋_天晴了:Person) RETURN 布口袋_天晴了.age,布口袋_天晴了.name,布口袋_天晴了.city
MATCH(p:Person) RETURN p.age,p.name,p.city
匹配所有Person標(biāo)簽節(jié)點,并返回這些節(jié)點
匹配Person類標(biāo)簽,屬性name="布口袋_天晴了" ,并返回節(jié)點
匹配Person類標(biāo)簽,屬性city="重慶",并返回節(jié)點


5.Neo4j?CQL -?CREATE創(chuàng)建標(biāo)簽命令:

創(chuàng)建單個標(biāo)簽

語法: CREATE(<node-name>:<label-name>)

語法: CREATE(節(jié)點名:節(jié)點標(biāo)簽名)

創(chuàng)建多個標(biāo)簽到節(jié)點

語法:?CREATE(<node-name>:<label-name1>:<label-name2>:...:<label-namen>)

語法: CREATE(節(jié)點名:節(jié)點標(biāo)簽名1:節(jié)點標(biāo)簽名2:... :節(jié)點標(biāo)簽名n)

創(chuàng)建單個標(biāo)簽到關(guān)系

語法: CREATE(<node1-name>:<label1-name>)-[(<relationship-name>:<relationship-label-name>]->(<node2-name>:<label2-name>)

語法: CREATE(節(jié)點1名:節(jié)點1標(biāo)簽名)-[(關(guān)系名:關(guān)系標(biāo)簽名)]->(節(jié)點2名:節(jié)點2標(biāo)簽名)


一個節(jié)點創(chuàng)建多個標(biāo)簽CREATE(p:Person:ChinesePeople:Artist)
一個節(jié)點創(chuàng)建多個標(biāo)簽CREATE(m:Movie:Cinema:Film:Pictutre)
在兩個節(jié)點間創(chuàng)建LIKES關(guān)系?CREATE(p:Person:ChinesePeople:Artist)-[r:LIKES]->(m:Movie:Cinema:Film:Picture)
查詢剛才創(chuàng)建的多標(biāo)簽節(jié)點
查詢剛才創(chuàng)建的LIKES關(guān)系


6.Neo4j?CQL -?WHERE命令:

簡單WHERE子句語法

語法: WHERE <condition>

語法:?WHERE?條件

復(fù)雜WHERE子句語法

語法: WHERE <condition> <boolean-operator> <condition>

語法:?WHERE?條件 <布爾操作>?條件

<condition>語法

語法: <property-name> <comparison-operator> <value>

語法:?屬性名 <比較操作>?值


圖片來源:W3Cschool?Neo4j教程
圖片來源:W3Cschool?Neo4j教程


先查詢所有的Person類節(jié)點,并返回它們的name、age、city、born屬性
通過添加WHERE? 屬性名 <比較操作>?值?方法篩選
通過添加WHERE?條件 <布爾操作>?條件?方法篩選

使用WHERE子句創(chuàng)建關(guān)系語法

語法:

MATCH (<node1-label-name>:<node1-name>),(<node2-label-name>:<node2-name>)

WHERE <condition>

CREATE (<node1-label-name>:<node1-name>)-[<relationship-label-name>:<relationship-name>{<relationship-properties>}]->(<node2-label-name>:<node2-name>)

語法:

MATCH (節(jié)點1標(biāo)簽名:節(jié)點1名),(節(jié)點2標(biāo)簽名:節(jié)點2名)

WHERE?條件

CREATE (節(jié)點1標(biāo)簽名:節(jié)點1名)-[關(guān)系標(biāo)簽名:關(guān)系名 {關(guān)系屬性}]->(節(jié)點2標(biāo)簽名:節(jié)點2名)

比如:想創(chuàng)建"布口袋_天晴了"這個人喜歡看動漫"哈爾的移動城堡"。

首先創(chuàng)建"布口袋_天晴了"這個人
其次再創(chuàng)建"哈爾的移動城堡"這個動漫
再簡單的匹配返回看看
最后將WHERE和CREATE加入,此處創(chuàng)建了2個關(guān)系是因為叫"布口袋_天晴了"這個人在數(shù)據(jù)庫中有兩個
查看LIKES關(guān)系


7.Neo4j?CQL -?DELETE命令:

DELETE節(jié)點子句語法 (刪除節(jié)點及其關(guān)聯(lián)的屬性)

語法: DELETE <node-name-list>?

語法:?DELETE?節(jié)點名列表

DELETE節(jié)點和關(guān)系子句語法

語法:?DELETE <node1-name>,<node2-name>,<relationship-name>

語法: DELETE?節(jié)點1名,節(jié)點2名,關(guān)系名


可以自己先創(chuàng)建一個類,然后再刪除。

刪除Label標(biāo)簽為Test_class的節(jié)點
再查看,就沒有任何記錄

打算刪除:"布口袋_天晴了"這個人喜歡看動漫"哈爾的移動城堡"? 這個關(guān)系。

先查找到這個關(guān)系
將查詢語句中的RETURN改為DELETE,即可以刪除數(shù)據(jù)
再查看,就沒有任何記錄


8.Neo4j?CQL -?REMOVE命令:

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

·DELETE操作用于刪除節(jié)點和關(guān)聯(lián)關(guān)系

·REMVOE操作用于刪除標(biāo)簽和屬性

REMOVE屬性子句語法

語法:?REMOVE <property-name-list>

語法:?REMOVE?屬性名列表

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

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

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

......

<node-name>.<propertyn-name>

REMOVE一個Label子句語法:

語法:?REMOVE <label-name-list>

語法:?REMOVE?標(biāo)簽名列表

<label-name-list>語法

<node-name>:<label1-name>,

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

......

<node-name>:<labeln-name>


創(chuàng)建一個Book類節(jié)點
通過book的唯一id來查詢該節(jié)點,并移除了price屬性
移除了price屬性
移除標(biāo)簽


參考文章:

【1】W3Cschool?Neo4j教程

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • 世界是運動的。 即使一塊石頭,擱在草叢中,它也是時刻在發(fā)生著變化。 對話風(fēng)雨,接受蝕刻;擁抱陽光,內(nèi)心孕育能量;小...
    南多先生閱讀 184評論 0 6
  • 來一桶跑步心得分享:瞎扯. 在我看來,對于眾生今生來世最有幫助的,莫過于殊勝的佛法,而在佛法中有兩個要點必不可少:...
    賀小桶閱讀 344評論 0 0
  • 對一個女性而言最有害的東西,就是怨恨和內(nèi)疚。前者讓我們把惡毒的能量對準(zhǔn)他人;后者則是掉轉(zhuǎn)槍口,把這種負面的情緒對準(zhǔn)...
    莫非我無心閱讀 726評論 0 1

友情鏈接更多精彩內(nèi)容