Neo4j學(xué)習(xí)

一、圖數(shù)據(jù)庫的基本介紹

  • 什么是圖形數(shù)據(jù)庫
    圖形數(shù)據(jù)庫(Graph Database)是NoSQL數(shù)據(jù)庫家族中特殊的存在皇帮,用于存儲豐富的關(guān)系數(shù)據(jù)卷哩,Neo4j 是目前最流行的圖形數(shù)據(jù)庫,支持完整的事務(wù)属拾。
    在屬性圖中将谊,圖是由節(jié)點(Node),邊(Edge)渐白,標簽(Lable)和屬性(Property)組成的尊浓,節(jié)點和邊都可以設(shè)置屬性,節(jié)點也稱作實體(Entity)纯衍,邊也稱作關(guān)系(Relationship)栋齿,每個節(jié)點和關(guān)系都可以由一個或多個屬性。在圖形中襟诸,節(jié)點和關(guān)系是最重要的實體瓦堵,所有的節(jié)點是獨立存在的,為節(jié)點設(shè)置標簽歌亲,那么擁有相同標簽的節(jié)點屬于一個分組菇用,一個集合;關(guān)系通過關(guān)系類型來分組陷揪,類型相同的關(guān)系屬于同一個集合惋鸥。關(guān)系是有向的,關(guān)系的兩端是起始節(jié)點和結(jié)束節(jié)點悍缠,通過有向的箭頭來標識方向卦绣,節(jié)點之間的雙向關(guān)系通過兩個方向相反的關(guān)系來標識。
    Neo4j圖形數(shù)據(jù)庫的查詢語言是Cypher飞蚓,用于操作屬性圖滤港,是圖形語言中事實上的標準。

二玷坠、Neo4j的基本概念

  • Nodes(節(jié)點)
    圖譜的基本單位主要是節(jié)點和關(guān)系蜗搔,他們都可以包含屬性,一個節(jié)點就是一行數(shù)據(jù)八堡,一個關(guān)系也是一行數(shù)據(jù)樟凄,里面的屬性就是數(shù)據(jù)庫里面的row里面的字段。
    除了屬性之外兄渺,關(guān)系和節(jié)點還可以有零到多個標簽缝龄,標簽也可以認為是一個特殊分組方式。
  • Relationships(關(guān)系)
    關(guān)系的功能是組織和連接節(jié)點,一個關(guān)系連接2個節(jié)點叔壤,一個開始節(jié)點和一個結(jié)束節(jié)點瞎饲。當所有的點被連接起來,就形成了一張圖譜炼绘,通過關(guān)系可以組織節(jié)點形成任意的結(jié)構(gòu)嗅战,比如list,tree俺亮,map驮捍,tuple,或者更復(fù)雜的結(jié)構(gòu)脚曾。關(guān)系擁有方向進和出东且,代表一種指向。
  • Properties(屬性)
    屬性非常類似數(shù)據(jù)庫里面的字段本讥,只有節(jié)點和關(guān)系可以擁有0到多個屬性珊泳,屬性類型基本和java的數(shù)據(jù)類型一致,分為 數(shù)值拷沸,字符串色查,布爾,以及其他的一些類型堵漱,字段名必須是字符串综慎。
  • Labels(標簽)
    標簽通過形容一種角色或者給節(jié)點加上一種類型,一個節(jié)點可以有多個類型勤庐,通過類型區(qū)分一類節(jié)點,這樣在查詢時候可以更加方便和高效好港,除此之外標簽在給屬性建立索引或者約束時候也會用到愉镰。label名稱必須是非空的unicode字符串,另外lables最大標記容量是int的最大值钧汹,近似21億丈探。
  • Paths(路徑)
    路徑是一個或多個節(jié)點通過關(guān)系連接起來的產(chǎn)物,例如得到圖譜查詢或者遍歷的結(jié)果拔莱。

二碗降、Neo4j的基本操作

  • 創(chuàng)建單個節(jié)點/實體
    直接創(chuàng)建:CREATE (n:金庸武俠人物{name:"楊過"}) RETURN n
    沒有就創(chuàng)建 :MERGE (n:金庸武俠人物{name:"小龍女"}) RETURN n
  • 創(chuàng)建實體與實體的關(guān)系
    MATCH (n:金庸武俠人物{name:"楊過"}),(n1:金庸武俠人物{name:"小龍女"}) CREATE (n)-[r:夫妻]->(n1) RETURN n,n1,r
  • 給實體添加屬性
    MATCH (n:金庸武俠人物{name:"楊過"}) set n.skill="黯然銷魂掌"
  • 給關(guān)系添加屬性
    MATCH (n)-[r:`夫妻`]->(n1) set r.des="師徒" RETURN n,n1,r
  • 修改節(jié)點/關(guān)系屬性
    MATCH (n:金庸武俠人物{name:"楊過"}) set n.skill="玄鐵劍法"
  • 移除節(jié)點/關(guān)系屬性
    match (n:`金庸武俠人物`{name:"楊過"}) remove n.skill
    MATCH (n)-[r:`夫妻`]->(n1) remove r.des
  • 單個節(jié)點查找
    "MATCH (n:`金庸武俠人物`{name:"楊過"}) RETURN n
    MATCH (n:`金庸武俠人物`) where n.name="楊過" RETURN n
  • 整個label查找
    查找label是“金庸武俠人物”的所有實體和關(guān)系:match (n:`金庸武俠人物`) return n
  • 關(guān)系查詢
    1.查詢關(guān)系是“后人”的所有實體:match (n:`金庸武俠人物`)-[r:后人]->(n1:`金庸武俠人物`) return n,r,n1
    2.查詢張無忌的所有對外關(guān)系:match (n:`金庸武俠人物`{name:"張無忌"})-[r]->(n1) return n,r,n1
    3.查詢張無忌的所有關(guān)系:match (n:`金庸武俠人物`{name:"張無忌"})-[r]-(n1) return n,r,n1
    4.查詢張無忌的所有2度關(guān)系:match (n:`金庸武俠人物`{name:"張無忌"})-[*..2]-(n1) return n,n1
    5.查找楊過和周芷若兩個實體3度的最短路徑:match (n:`金庸武俠人物`{name:"楊過"}),(n1:`金庸武俠人物`{name:"周芷若"}),p=shortestpath((n)-[*..3]-(n1)) return p
    6.查找楊過和周芷若兩個實體3度的所有最短路徑:match (n:`金庸武俠人物`{name:"楊過"}),(n1:`金庸武俠人物`{name:"周芷若"}),p=allshortestpaths((n)-[*..3]-(n1)) return p
  • 刪除關(guān)系
    1.刪除張無忌和周芷若的所有關(guān)系:match (n:`金庸武俠人物`{name:"張無忌"})-[r]-(n1:`金庸武俠人物`{name:"周芷若"}) delete r
    2.刪除節(jié)點前要刪除節(jié)點的關(guān)系,否則報錯:match (n:`金庸武俠人物`{name:"張無忌"}) delete n
  • 強制刪除對應(yīng)標簽下的所有節(jié)點和關(guān)系
    match (n:`金庸武俠人物`) detach delete n
  • 強制刪除圖庫中的所有節(jié)點和關(guān)系
    match (n) detach delete n

任務(wù)關(guān)系文件:鏈接:https://pan.baidu.com/s/1DQ6BewVQN0zpOnFwtW--dg 密碼:7tdn

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末塘秦,一起剝皮案震驚了整個濱河市讼渊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌尊剔,老刑警劉巖爪幻,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡挨稿,警方通過查閱死者的電腦和手機仇轻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來奶甘,“玉大人篷店,你說我怎么就攤上這事〕艏遥” “怎么了船庇?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長侣监。 經(jīng)常有香客問我鸭轮,道長,這世上最難降的妖魔是什么橄霉? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任窃爷,我火速辦了婚禮,結(jié)果婚禮上姓蜂,老公的妹妹穿的比我還像新娘按厘。我一直安慰自己,他們只是感情好钱慢,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布逮京。 她就那樣靜靜地躺著,像睡著了一般束莫。 火紅的嫁衣襯著肌膚如雪懒棉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天览绿,我揣著相機與錄音策严,去河邊找鬼。 笑死饿敲,一個胖子當著我的面吹牛妻导,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播怀各,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼倔韭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了瓢对?” 一聲冷哼從身側(cè)響起寿酌,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎沥曹,沒想到半個月后份名,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體碟联,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年僵腺,在試婚紗的時候發(fā)現(xiàn)自己被綠了鲤孵。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡辰如,死狀恐怖普监,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情琉兜,我是刑警寧澤凯正,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站豌蟋,受9級特大地震影響廊散,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜梧疲,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一允睹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧幌氮,春花似錦缭受、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至宇智,卻和暖如春蔓搞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背普筹。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工败明, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人太防。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像酸员,于是被迫代替她去往敵國和親蜒车。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345