Neo4j資料庫 Cypher語言初學

2022-08-31 23:24:15 字數 2118 閱讀 5365

任何資料庫基礎的都是增刪改查四種功能,而neo4j使用的cypher語言一樣如此。cypher是一種很好處理圖資料庫的語言,下面就從幾個基本功能來學習他的基本用法。就以我們做的電影智慧型問答系統來做示範。

一 建立節點

建立節點有兩種方式,一種是create方式,一種是用merge方式。其中用create建立是不管這個節點有沒有都進行建立,而merge是如果節點存在則不再建立。

1

//merge方式,建立唯一節點

2merge(n:教父) 34

//create方式,無論有沒有都進行建立節點

5 create(n:教父)

(被create建立了兩次的節點,他們的id值是被neo4j自動分配而且遞增的)此時建立的節點除了id屬性沒有其他的屬性。

二 增刪改節點屬性

(1)查詢到相應節點並返回

1

//注意不要忘記返回節點

2 match(n) where id(n) = 3272

return n

(2)給相應節點新增屬性

1

//給該node新增三個屬性,分別是label(節點標籤名),releasedate(上映日期),introduction(電影介紹)

2 match(n) where id(n) = 3272

set n.label='

教父',n.releasedate='

1991-03-21

',n.introduction='

教父很好看

'return n

neo4j查詢節點用:match 相當於關係型資料庫的select,相當於非關聯式資料庫mongodb的find

neo4j修改節點屬性用:set 相當於關係型資料庫的update...set...

(在neo4j中如果設定不存在的屬性會自動新建該屬性)

(3)刪除節點的屬性

1

//刪除電影的上映日期屬性

2 match(n) where id(n) = 3272 remove n.releasedate return n

(4)建立帶屬性的節點

1 create(n:movie) return n
三 模糊查詢

查詢屬性值label開頭是「教」其餘任意值的節點資訊

match(n) where n.label=~'

教*.'

return n

四 刪除相應節點

刪除節點中對應標籤的節點

match(n:movie) where id(n) = 3257 delete n
五 關係

1.建立關係

關係不能獨自存在,必須有兩個或兩個以上的節點才可以。而建立統一用create命令,而關係的建立,實際上和建立節點差不多,唯一區別就是,關係是有方向的,而且關係用『』表示,而節點用'()'表示。如:

match(n),(b) where n.label='

李連杰' and b.label='

少林寺'create(n)-[r:actedin]->(b) return n,r,b

(1)、首先匹配找到節點n和b,也就是李連杰和少林寺代表的節點node

(2)、然後建立節點n到節點b的關係r,r有兩個屬性,乙個是時間since,另乙個是拿過的獎項數量champion

(3)、最後返回n,r,b 完整節點之間的關係結果,table資料有三列。

2. 修改關係屬性

match(n)-[r]-(b) where id(r) = 12513

set r.since='

1990-09-09

'return n,r,b

3. 刪除關係

match(n)-[r]-(b) where n.label='

李連杰' and b.label='

少林寺'

delete r

return r

以上就是cypher語言的基本用法。

neo4j 查詢cypher話語

engine.execute start n node people return n params skip和limit的數字引數12 345mapparams new hashmap params.put s 1 params.put l 1 executionresult result eng...

Neo4j筆記(二)Cypher(1)case語句

cypher支援case條件表示式,它的邏輯類似於c語言中的if else語句。乙個case語句包含乙個或多個when then子句,每個子句都是乙個表示式。case語句也可以包含乙個else子句,當之前的條件都不為真時,則執行該else子語句,類似於c語言中的default。case語句有兩種語法...

初探Neo4J中的Cypher

由於rdf資料庫需要,需要調研圖形資料庫,選擇了neo4j進行嘗試,發現它包含了乙個名為 cypher 的操作語言,使用了一下感覺非常不錯,所有有寫點東西的必要。從官網上盜個圖 其實,這個圖也就標識了cypher語言的基本功能,節點a到節點b,關係是likes,其操作的方法與sql的select一樣...