Cypher是一種圖資料庫查詢語言,表現力豐富,查詢效率高,其地位和作用與關系型資料庫中的SQL語言相當。
Cypher具備的能力:
- Cypher通過模式比對圖資料庫中的節點和關系,來提取資訊或者修改資料。
- Cypher語句中允許使用變量,用來表示命名、綁定元素和參數。
- Cypher語句可以對節點、關系、标簽和屬性進行建立、更新和删除操作。
- Cypher語句可以管理索引和限制。
Cypher的簡單文法:
- 1、節點文法:采用一對圓括号來表示節點。如:
、()
(foo)
- 2、關系文法:使用一對短橫線表示無方向關系,有方向加箭頭。如:
-[role]-
-[:ACTED_IN]->
-[role:ACTED_IN]->
- 3、模式文法:将節點和關系的文法組合在一起可以表達模式。如:
(keanu: Person: Actor {name: "Keanu Rteves"}-[role:ACTED_IN {roles: ["Neo"]}]->{matrix: Movie {title: "The Matrix"}})
Cypher處理值支援的類型:
- 數值、字元串、布爾、節點、關系、路徑、映射Map、清單List
Cypher查詢語言中的所有函數:
- 斷言(Predicate)函數、标量(Scalar)函數、清單(List)函數、數學(Math)函數、字元串(String)函數、自定義函數
Neo4j程式開發模式:
- Java嵌入式開發模式,Java開發人員完全可以直接在代碼中調用Neo4j的API,并将對Neo4j資料庫的操作嵌入到Java代碼中;
- 驅動開發模式,使用.net、JavaScript、Python、php等內建的驅動包或驅動庫就可以與Neo4j互相對話
常用的語句
- 1.建立節點語句
CREATE (n {name:"張三"}) //建立節點并給節點配置設定一個屬性
CREATE ({name:"李四"})-[r:have]->({bookname:"設計模式"}) //建立一個關系,給兩個節點建立關系指定關系類型、方向和綁定一個變量
- 2.查詢語句
MATCH (n{name:"張三"}) RETURN n //根據屬性比對節點資訊
MATCH (n:Person)-[:FRIEND]->(m:Person) WHERE n.name = '張三' //比對節點時指定标簽、屬性和關系類型
MATCH (n)-[k:KNOWS]->(f) WHERE k.since < 2000 RETURN f //根據關系屬性過濾
- 3.節點更新和删除
MATCH (n {name:'張三'}) SET n={age:20} //修改節點資訊,覆寫節點屬性
MATCH (n {name:'張三'}) SET n+={age:20} RETURN n //該語句不會删除掉name屬性,而是在節點中新增age屬性
MATCH (n{name:'張三'}) remove n.age RETURN n //删除節點屬性
MATCH (a)-[r:KNOWS]->(b) DELETE r,b //删除一個節和關系
- 4.索引和限制
CREATE INDEX ON :Person(name) //為"Person"标簽的name屬性建立索引
DROP CONSTRAINT ON (n:Person) ASSERT n.name IS UNIQUE //建立節點屬性唯一限制
【閱讀原文...】
聲明:責編内容由 稀土掘金 釋出,CoLaBug.com 無法對本文内容的真實性提供任何保證,請自行驗證并承擔相關的風險與後果!CoLaBug.com 遵循[CC BY-SA 4.0]分享,并保持客觀立場。如您有版權、意見、投訴等問題,請通過[eMail]聯系我們處理。原文位址:https://www.colabug.com/6381865.html