jdk安裝、配置
解壓、設定環境變數
neo4j_home 本機位址
path %neo4j_home%\bin
命令啟動 neo4j.bat console
如果出現錯誤"powershell命令提示符出現「不是內部或外部命令,也不是可執行的程式或批處理檔案",
解決方法:在環境變數path後新增powershell的路徑——c:\program files\tortoisesvn\bin
web訪問
初始使用者: neo4j 初始密碼: neo4j
也可命令列訪問 (暫時忽略)
// 格式
create (node_name:lable_name
);// node_name 型別於關係型資料庫的表的別名(建立節點之後,這個東西就不知道什麼用了)
// label_name 類似於表明一樣,表明一類實體
// 例子
create (dog:dog);
// 查詢節點的某個屬性
match(node_name:node_label)
where node_name.key1=value1
return node.key3 as key3
// 查詢整個節點
match(node_name:node_label)
where node_name.key1=value1 and/or node_name.key2>value2
return node_name
// 例如
match (dog:dog)
where dog.name = 『dog_name』
return dog
relationship
// 給現有節點新增關係
match (a:a),(b,b)
where a.key1=value1 and b.key2=value2 or …
create (a)-[r:r]->(b)
// 新建節點的同時建立關係,甚至可以在後面追加return
create (a:a)-[r:r]->(b:b)
return r
// 查詢關係
match (a:a)-[r:r]->(b:b)
where a.key1=value1 or r.key2=value2 and b.key3=value3
return r
delete 刪除節點或關係,在刪除節點前,必須先刪除其相關關係
// 刪除節點
match (a:a)
where a.key1=value1
delete a
// 刪除節點的屬性
match (a:a)
where a.key1=value1
delete a.key1
match (a:a)
delete a
// 刪除所有a\b之間的r關係
match (a:a)-[r:r]->(b:b)
delete r
// 同時刪除關係和節點
match (a:a)-[r:r]->(b:b) where a.key1=value1 delete a,b,r
資料初始化建立語句:
create (philip:person )-[:is_friend_of]->(emil:person ), (philip)-[:is_friend_of]->(michael:person ), (philip)-[:is_friend_of]->(andreas:person ) create (sushi:cuisine ), (nyc:city ), (isushi:restaurant )-[:serves]->(sushi),(isushi)-[:located_in]->(nyc), (michael)-[:likes]->(isushi), (andreas)-[:likes]->(isushi), (zam:restaurant )-[:serves]->(sushi),(zam)-[:located_in]->(nyc), (andreas)-[:likes]->(zam)
問題:(1)new york都有哪些餐廳?
(2)philip朋友的朋友是誰?
(3)給philip推薦他朋友愛吃的位於紐約的餐廳,並按照喜歡人數進行排序?
問題答案參考:
create (philip:person )-[:is_friend_of]->(emil:person ), (philip)-[:is_friend_of]->(michael:person ), (philip)-[:is_friend_of]->(andreas:person ) create (sushi:cuisine ), (nyc:city ), (isushi:restaurant )-[:serves]->(sushi),(isushi)-[:located_in]->(nyc), (michael)-[:likes]->(isushi), (andreas)-[:likes]->(isushi), (zam:restaurant )-[:serves]->(sushi),(zam)-[:located_in]->(nyc), (andreas)-[:likes]->(zam)上面一大推拆分成下面的一步步
label: person
建立philip
create (philip:person );
建立emil
create (emil:person );
建立michael
create (michael:person );
建立andreas
create (andreas:person);
label: cuisine
5. 建立sushi
create (sushi:cuisine);
label: city
6. 建立nyc
create (nyc:city );
label: restaurant
7. 建立isushi
create (isushi:restaurant)
8. 建立zam
create (zam:restaurant )
建立關係 // 若關係沒有標籤、where等限制會給所有的節點加上關係
match(a:person),(b:person)
where a.name=「philip」 and b.name=「michael」
create (a)-[:is_friend_of]->(b)
與 emil建立關係 同上
與 michael建立關係 同上
與 andreas建立關係 同上
– 簡略記法,實際這麼寫可不成
create (isushi)-[:serves]->(sushi)
create (zam)-[:serves]->(sushi)
– 之後通過id(n)方法選擇元素
isushi 160 nyc 140 michael 240 andreas 260 zam 180
create (isushi)-[:located_in]->(nyc)
create (zam)-[:located_in]->(nyc)
create (michael)-[:likes]->(isushi)
create (andreas)-[:likes]->(isushi)
create (andreas)-[:likes]->(zam)
match (philip:person),(emil:person)
where philip.name=「philip」 and emil.name=「emil」 – 若無選擇項是否能建立關係,能,但是philip與emil此時代表標籤。會有很多關係建立
create (philip)-[:is_friend_of]->(emil)
(1)match (a:restaurant)-[:located_in]->(b:city) where b.name=「new york」 return a
(2)match (a:person)-[:is_friend_of]->(b:person) where a.name=「philip」 return b
(3)match (a:restaurant)-[:located_in]->(b:city),(c:person)-[:is_friend_of]->(d:person),(d:person)-[:likes]->(a:restaurant) where b.name=「new york」 and c.name=「philip」 return a
參***更整潔
在match中輸入名字替代where條件
return返回多項內容
as內容修改返回列名
通過order by 與 count 函式進行統計和排序
通過id()方法 id(n)=10
Neo4j學習(2) Win系統安裝Neo4j
neo4j 是目前最流行的圖形資料庫,支援完整的事務,在屬性圖中,圖是由頂點 vertex 邊 edge 和屬性 property 組成的,頂點和邊都可以設定屬性,頂點也稱作節點,邊也稱作關係,每個節點和關係都可以由乙個或多個屬性。neo4j建立的圖是用頂點和邊構建乙個有向圖,其查詢語言cypher...
Neo4j檔案說明
neo4j作為資料庫式的nosql工具,檔案儲存也有其獨特方面。neostore neostore.id 儲存版本資訊 neostore.nodestore.db neostore.nodestore.db.id 儲存節點資料與節點序列id neostore.propertystore.db neo...
Neo4j學習筆記
neo4j學習筆記 一.基本知識 1.1 node syntax 節點語法 matrix movie matrix movie matrix movie matrix movie 1 代表乙個節點uncharacterized node 2 matrix 新增了乙個變數為matrix的節點。3 mo...