數據庫 (圖 Neo4j 使用教程)

 

  圖數據庫功能:  主要是處理具備深度 相關聯的數據,尤爲是幾何性增加的這種關係,比關係型數據庫更具備優點。javascript

  

  一個圖是由   節點和 關係構成, 節點和關係均可以包含屬性。php

  一個關係鏈接兩個節點,必須有一個開始節點和結束節點。java

 

  Neo4j 的安裝node

  下載地址:桌面版(學習使用)https://neo4j.com/artifact.php?name=neo4j-desktop-offline-1.2.1-setup.exe數據庫

  windows 下安裝社區版 zipwindows

  1.解壓文件學習

  2.  cmd   進入bin 下面,執行   neo4j install-service     spa

  3. neo4j start  啓動服務對象

  4.http://localhost:7474 blog

  5. neo4j stop  中止服務

  6. neo4j uninstall-service 卸載  

    7. 默認用戶名稱和密碼  neo4j    neo4j 

 

  Neo4j 的使用

 

 命令
格式 示例

新增 節點名稱:標籤名稱{key:value}   

須要注意的是  key 不能使用雙引號包裹

CREATE ( <node-name>:<label-name> { <key>:<Value> ........ <n-key>:<n-Value> } )
create(user:Use {name:"小明",age:12 })
一個節點能夠建立多個標籤
CREATE (<node-name>:<label-name1>:<label-name2>.....:<label-namen>)
 

MATCH查詢

 

match(user:User) return user

match(user:User) return user.name

 創建關聯    create(user:User)-[r:Goods]->(book:Book)
 匹配 創建新的關係    match(user:User),(book:Book) create (user)-[r:Goods{price:12,num:1}]->(book) return r
 更新   match(user:User) set user.userName = "xiaomi" return user

 

  

  基本的用法

  咱們先以數據庫表進行抽象(User 用戶表     Goods 商品表    Records 購買記錄 )

  對應字段 :User(name,age)   Goods(name,price)    Records(userName,goodName,num)

 

  1. 首先咱們建立一個用戶 類

  添加兩我的小明和小花

  create (user:User{name:"xiaoming",age:12})

  create (user:User{name:"xiaoming",age:13})

  create (user:User{name:"xiaohua",age:15})

  2. 建立兩個商品

  create (good:Goods{name:"肯德基",price:40})

  create (good:Goods{name:"java書",price:24.5})

  3. 小明買了兩本書

  match(user:User),(good:Goods) where user.name = "xiaoming" and good.name = "java書" create (user)-[r:Records{userName:user.name,goodName:good.name,num:2}]->(good) return r

  4.  查詢總共有多少人

  match(user:User) return user

  5. 小明修改了書的數量

  match(user:User{name:"xiaoming"})-[r:Records{userName:user.name,goodName:good.name}]->(good:Goods{name:"java書"}) set r.num = 3  return r

  6. 小明退了買的書

  match(user:User{name:"xiaoming"})-[r:Records{userName:user.name,goodName:good.name}]->(good:Goods{name:"java書"}) delete r 

   7. 移除對象的屬性(remove 用於移除屬性或者標籤)

  match(user:User{name:"xiaoming"})  remove user.name return user    (至關於只移除了小明裏面的name 屬性)

  

  


  

  建立一個深度比較長的數據(案例1)

  

 

  

   深度進行匹配

  match(n:Num{name:3})-[r:Father]->(b:Num)-[r1:Father]->(c:Num) return n,b,c

  結果:

  

 

  


 

 

  開始(案例2)

進行匹配

match(n:Num{name:3})-[r:Father | Mother]->(b:Num)-[r1:Father | Mother]->(c:Num) return n,b,c

結果:

相關文章
相關標籤/搜索