国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

neo4j教程-Cypher操作

這篇具有很好參考價值的文章主要介紹了neo4j教程-Cypher操作。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Cypher基礎(chǔ)操作

Cypher是圖形存儲數(shù)據(jù)庫Neo4j的查詢語言,Cypher是通過模式匹配Neo4j數(shù)據(jù)庫中的節(jié)點(diǎn)和關(guān)系,從而對數(shù)據(jù)庫Neo4j中的節(jié)點(diǎn)和關(guān)系進(jìn)行一系列的相關(guān)操作。

下面,通過一張表來介紹一下常用的Neo4j操作命令及相關(guān)說明,具體如表所示。

操作命令 相關(guān)說明
CREATE 創(chuàng)建節(jié)點(diǎn)、關(guān)系
MATCH 查找所有符合給定模式的節(jié)點(diǎn)、關(guān)系以及屬性數(shù)據(jù)
RETURN 返回查詢結(jié)果
WHERE 過濾條件,篩選出符合條件的數(shù)據(jù)
DELETE 永久刪除節(jié)點(diǎn)和關(guān)系
REMOVE 刪除節(jié)點(diǎn)的屬性

增-CREATE命令

語法

使用CREATE命令創(chuàng)建節(jié)點(diǎn)、關(guān)系,具體語法如下:

# 創(chuàng)建帶有標(biāo)簽的節(jié)點(diǎn)
CREATE (<node-name>:<label-name>)
# 創(chuàng)建帶有標(biāo)簽、屬性的節(jié)點(diǎn)
CREATE (<node-name>:<label-name>{<property-name>:<property-value>})
# 創(chuàng)建帶有標(biāo)簽的關(guān)系
CREATE (<node1-name>:<label1-name>)-[(<relationship-name>:
	<relationship-label-name>)] ->(<node2-name>:<label2-name>)

上述語法中,CREATE是創(chuàng)建節(jié)點(diǎn)、關(guān)系的命令;

  • <node-name>表示節(jié)點(diǎn)名稱,Neo4j使用此名稱將該節(jié)點(diǎn)的詳細(xì)信息存儲在Database.As中,用作Neo4j數(shù)據(jù)庫管理(注:不能使用節(jié)點(diǎn)名稱來訪問節(jié)點(diǎn)的詳細(xì)信息);
  • <label-name>表示標(biāo)簽名稱,是內(nèi)部節(jié)點(diǎn)名稱的別名(注:可使用標(biāo)簽名稱訪問節(jié)點(diǎn)的詳細(xì)信息);
  • <property-name>表示屬性名;
  • < property-value >表示屬性值;
  • <relationship-name>表示關(guān)系;
  • <relationship-label-name>表示關(guān)系的標(biāo)簽。

案例練習(xí)

我們演示創(chuàng)建一個節(jié)點(diǎn)p,其中標(biāo)簽為Person、屬性分別為“name、age、hobby”、屬性值分別為“張三、18、swimming”,具體如下:

$ create (p:Person{name:'張三',age:18,hobby:'swimming'})

執(zhí)行上述命令后,Web UI界面的控制臺返回“Added 1 label, created 1 node, set 3 properties, completed after 15 ms.”信息,說明我們新增一個標(biāo)簽、創(chuàng)建一個節(jié)點(diǎn),并設(shè)置了三個屬性。

neo4j教程-Cypher操作,neo4j,數(shù)據(jù)庫

下面,我們演示創(chuàng)建標(biāo)簽為Likes的關(guān)系friend,其中起始節(jié)點(diǎn)為Jac、屬性name為Jack,結(jié)束節(jié)點(diǎn)為Emm、屬性name為Emma,具體如下:

$ create (Jac:Person{name:'Jack'})-[friend:Likes]->(Emma:Person{name:'Emma'})

執(zhí)行上述命令后,Web UI界面的控制臺返回“Added 2 labels, created 2 nodes, set 2 properties, created 1 relationship, completed after 3 ms.”信息,說明我們新增兩個標(biāo)簽、創(chuàng)建兩個節(jié)點(diǎn)、設(shè)置兩個屬性、創(chuàng)建一個關(guān)系(注意:標(biāo)簽Person是節(jié)點(diǎn)的標(biāo)簽;標(biāo)簽Likes是關(guān)系的標(biāo)簽)。

neo4j教程-Cypher操作,neo4j,數(shù)據(jù)庫

查看圖示數(shù)據(jù)

neo4j教程-Cypher操作,neo4j,數(shù)據(jù)庫

neo4j教程-Cypher操作,neo4j,數(shù)據(jù)庫

1.match命令

語法

使用MATCH命令查找所有符合給定模式的節(jié)點(diǎn)、關(guān)系以及屬性數(shù)據(jù),具體語法如下:

MATCH (<node-name>:<label-name>)

上述語法中,MATCH用于查找所有符合給定模式的節(jié)點(diǎn)、關(guān)系以及屬性數(shù)據(jù)的命令;<node-name>表示節(jié)點(diǎn)名稱;<label-name>表示標(biāo)簽名稱。

案例練習(xí)

演示查找數(shù)據(jù)庫中標(biāo)簽為Person節(jié)點(diǎn)p的詳細(xì)信息,具體如下:

$ match (p:Person)

neo4j教程-Cypher操作,neo4j,數(shù)據(jù)庫

從圖中可看出是語法錯誤,若想要使用MATCH命令,則需要與RETURN命令或更新命令結(jié)合使用。

2.RETURN命令

語法

使用RETURN命令返回查詢結(jié)果,具體語法如下:

RETURN (<node-name>:<property-name>)

上述語法中,RETURN是用于返回查詢結(jié)果的命令;<node-name>表示節(jié)點(diǎn)名稱;< property -name>表示屬性名。

案例練習(xí)

下面,我們演示返回屬性為age的節(jié)點(diǎn)p的所有信息,具體如下:

$ return p.age

執(zhí)行上述命令后,查看Web UI界面控制臺的返回結(jié)果,具體如圖所示。

neo4j教程-Cypher操作,neo4j,數(shù)據(jù)庫

從圖中可看出是語法錯誤,若想要使用RETURN命令,則需要與METCH命令或CREATE命令結(jié)合使用。

查詢案例練習(xí)(正確版)

題目1:我們演示查詢數(shù)據(jù)庫中節(jié)點(diǎn)p的詳細(xì)信息,具體如下:

$ match (p:Person) return p.name,p.age,p.hobby

neo4j教程-Cypher操作,neo4j,數(shù)據(jù)庫

若想要使用RETURN命令,則需要與METCH命令或CREATE命令結(jié)合使用。

題目2:我們演示查詢數(shù)據(jù)庫中所有節(jié)點(diǎn)的詳細(xì)信息,具體如下:

$ match (n) return n

neo4j教程-Cypher操作,neo4j,數(shù)據(jù)庫

如果我們要按照某種條件查詢呢?–WHERE命令

3.WHERE命令

語法

使用WHERE命令查詢符合條件的數(shù)據(jù),具體語法如下:

WHERE <condition>

上述語法中,WHERE是用于查詢符合條件的數(shù)據(jù)命令,該命令需要與MATCH命令和RETURN命令結(jié)合使用;<condition>表示查詢的條件。

案例練習(xí)

演示查詢符合條件“p.name=‘張三’”的節(jié)點(diǎn)詳細(xì)信息,具體如下:

$ match (p:Person) where p.name='張三' return p

neo4j教程-Cypher操作,neo4j,數(shù)據(jù)庫

和sql很像!

1.-DELETE命令

語法

使用DELETE命令永久的刪除節(jié)點(diǎn)或關(guān)系,具體語法如下:

# 刪除節(jié)點(diǎn)
DELETE <node-name-list>
# 刪除節(jié)點(diǎn)及關(guān)聯(lián)的關(guān)系
DELETE <node1-name>,<node2-name>,<relationship-name>

上述語法中,DELETE是用于永久刪除節(jié)點(diǎn)或關(guān)系的命令,該命令需要與MATCH命令結(jié)合使用,刪除滿足某個條件的節(jié)點(diǎn);<node-name-list>表示節(jié)點(diǎn)名稱列表;<relationship-name>表示關(guān)系名稱。

案例練習(xí)

題目1:我們演示刪除屬性name為張三的節(jié)點(diǎn),具體如下:

$ match (p{name:'Bob'}) delete p

neo4j教程-Cypher操作,neo4j,數(shù)據(jù)庫

執(zhí)行“match (p:Person) return p”命令,然后查看Web UI界面控制臺的返回結(jié)果,如圖所示。

neo4j教程-Cypher操作,neo4j,數(shù)據(jù)庫

若是想要清空數(shù)據(jù)庫中的節(jié)點(diǎn)或者關(guān)系,則可以執(zhí)行“match (n) detach delete n”命令,但是該命令要慎用。

題目2:我們演示刪除屬性name分別為Jack和Emma的節(jié)點(diǎn)以及相關(guān)聯(lián)的關(guān)系,具體如下:

$ match (Jac{name:'Jack'})-[friend]->(Emm{name:'Emma'}) delete Jac,Emm,friend

neo4j教程-Cypher操作,neo4j,數(shù)據(jù)庫

2.REMOVE命令

語法

使用REMOVE命令刪除節(jié)點(diǎn)的屬性,具體語法如下:

# 刪除節(jié)點(diǎn)的屬性
REMOVE <property-name-list>

上述語法中,REMOVE是用于刪除節(jié)點(diǎn)的屬性的命令,該命令需要與MATCH命令結(jié)合使用;<property-name-list>表示節(jié)點(diǎn)的屬性名稱列表。

案例練習(xí)

我們演示刪除節(jié)點(diǎn)的屬性hobby,由于上述小節(jié)中演示刪除了數(shù)據(jù)庫中的所有節(jié)點(diǎn),導(dǎo)致數(shù)據(jù)庫中無任何節(jié)點(diǎn),因此,需要先執(zhí)行創(chuàng)建節(jié)點(diǎn)的命令,然后再執(zhí)行刪除屬性hobby的命令,具體如下:

$ create (p:Person{name:'Bob',age:22,hobby:'go dancing'})
$ match (p:Person) remove p.hobby

創(chuàng)建節(jié)點(diǎn)

neo4j教程-Cypher操作,neo4j,數(shù)據(jù)庫

刪除屬性

neo4j教程-Cypher操作,neo4j,數(shù)據(jù)庫

$match (n) detach delete n
#清空Neo4j數(shù)據(jù)庫中的節(jié)點(diǎn)和關(guān)系數(shù)據(jù)

其他

先行工作

插入節(jié)點(diǎn)、關(guān)系

create (Jac:Person{name:'Jack',age:19})-[friend:Likes]->(Emma:Person{name:'Emma',age:17})-[girlfriend:Likes]->(Rose:Person{name:'Rose',age:17})

neo4j教程-Cypher操作,neo4j,數(shù)據(jù)庫

列訪問、排序和分頁

查詢節(jié)點(diǎn)姓名、年齡并按照年齡排序返回前十個

SQL語句

SELECT p.name, p.age
FROM Person as p
ORDER BY p.age DESC
LIMIT 10;

Neo4j語句

MATCH (p:Person)
RETURN p.name, p.age
ORDER BY p.age DESC
LIMIT 10;

neo4j教程-Cypher操作,neo4j,數(shù)據(jù)庫

索引(Indexing)

如果要通過此節(jié)點(diǎn)標(biāo)簽和屬性組合快速匹配,則可以在導(dǎo)入期間創(chuàng)建索引,這很有意義。

CREATE INDEX ON :Person(name);

過濾

Cypher中具有完整的集合支持,不僅包括IN運(yùn)算符,還包括集合函數(shù)、謂詞和轉(zhuǎn)換。

查找名字在’Bob’,'Emma’中的節(jié)點(diǎn)

MATCH (p:Person)
WHERE p.name IN ['Bob','Emma']
RETURN p.name, p.age;

neo4j教程-Cypher操作,neo4j,數(shù)據(jù)庫

按多個數(shù)字和文本謂詞過濾

現(xiàn)在,讓我們嘗試找到一些名字以“ B”開頭的大于17歲的節(jié)點(diǎn)。

sql語句

SELECT p.name, p.age
FROM Person AS p
WHERE p.name LIKE 'B%' AND p.age > 17;

LIKE操作者通過所取代STARTS WITH(也有CONTAINSENDS WITH)所有其中的三個索引支持。

MATCH (p:Person)
WHERE p.name STARTS WITH "B" AND p.age > 17
RETURN p.name, p.age;

neo4j教程-Cypher操作,neo4j,數(shù)據(jù)庫

還可以使用正則表達(dá)式,例如p.name =~ "B."。

想學(xué)習(xí)更多請參考:史上最全-Neo4j相關(guān)資源傳送門 - 知乎 (zhihu.com)文章來源地址http://www.zghlxwxcb.cn/news/detail-608456.html

到了這里,關(guān)于neo4j教程-Cypher操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 圖數(shù)據(jù)庫_Neo4j學(xué)習(xí)cypher語言_使用CQL_構(gòu)建明星關(guān)系圖譜_導(dǎo)入明星數(shù)據(jù)_導(dǎo)入明星關(guān)系數(shù)據(jù)_創(chuàng)建明星關(guān)系---Neo4j圖數(shù)據(jù)庫工作筆記0009

    圖數(shù)據(jù)庫_Neo4j學(xué)習(xí)cypher語言_使用CQL_構(gòu)建明星關(guān)系圖譜_導(dǎo)入明星數(shù)據(jù)_導(dǎo)入明星關(guān)系數(shù)據(jù)_創(chuàng)建明星關(guān)系---Neo4j圖數(shù)據(jù)庫工作筆記0009

    首先找到明星數(shù)據(jù) ? 可以看到有一個sheet1,是,記錄了所有的關(guān)系的數(shù)據(jù) ? 然后比如我們搜索一個撒貝寧,可以看到撒貝寧的數(shù)據(jù) ? 然后這個是構(gòu)建的CQL語句 ? 首先我們先去啟動服務(wù) neo4j console ? ? 然后我們再來看一下以前導(dǎo)入的,可以看到導(dǎo)入很簡單, 就是上面有CQL 看一下節(jié)

    2024年02月12日
    瀏覽(28)
  • neo4j教程-Cypher操作

    neo4j教程-Cypher操作

    Cypher是圖形存儲數(shù)據(jù)庫Neo4j的查詢語言,Cypher是通過模式匹配Neo4j數(shù)據(jù)庫中的節(jié)點(diǎn)和關(guān)系,從而對數(shù)據(jù)庫Neo4j中的節(jié)點(diǎn)和關(guān)系進(jìn)行一系列的相關(guān)操作。 下面,通過一張表來介紹一下常用的Neo4j操作命令及相關(guān)說明,具體如表所示。 操作命令 相關(guān)說明 CREATE 創(chuàng)建節(jié)點(diǎn)、關(guān)系 MATC

    2024年02月15日
    瀏覽(20)
  • Neo4j圖數(shù)據(jù)庫基本操作

    Neo4j圖數(shù)據(jù)庫基本操作

    Neo4j 命令行窗口 neo4j.bat console 導(dǎo)入rdf格式的文件 清空所有數(shù)據(jù) 這里要注意的是,因?yàn)椴淮嬖诠铝⒌年P(guān)系,所以若要刪除一個帶關(guān)系的節(jié)點(diǎn),需要同時刪除該節(jié)點(diǎn)所有的關(guān)系。 即,若要刪除路徑 (a)-[d]-(b)-[e]-(c) 中的 a,b 節(jié)點(diǎn),則需要同時刪除關(guān)系 d,e。 因此,若要清空數(shù)據(jù)

    2024年02月12日
    瀏覽(21)
  • Neo4j圖數(shù)據(jù)庫安裝教程

    Neo4j圖數(shù)據(jù)庫安裝教程

    記錄Neo4j圖數(shù)據(jù)庫安裝過程中踩過的坑和問題解決辦法,僅供參考。 Neo4j數(shù)據(jù)庫底層是使用java編寫,所有底層基于Java虛擬機(jī)運(yùn)行,所以在安裝neo4j之前要安裝java環(huán)境; 下載jdk1.7版本,自行安裝? ? **這里有坑,建議不要直接跟著做呦,不然你會后悔的** set??JAVA_HOME =?D:Pro

    2024年02月11日
    瀏覽(28)
  • Python操作Neo4j數(shù)據(jù)庫使用案例

    Python操作Neo4j數(shù)據(jù)庫使用案例

    ??Neo4j是一個世界領(lǐng)先的開源的基于圖的數(shù)據(jù)庫。其語言操作簡單直觀,本文假設(shè)你已經(jīng)安裝好Neo4j數(shù)據(jù)庫,并對知識圖譜有一定的了解。Neo4j數(shù)據(jù)庫的查詢語言為CQL,其代表Cypher查詢語言。 像Oracle數(shù)據(jù)庫具有查詢語言SQL,Neo4j具有CQL作為查詢語言。你可以訪問(https://www.

    2024年02月03日
    瀏覽(20)
  • 圖數(shù)據(jù)庫Neo4j(最詳細(xì)教程)

    ?隨著社交、電商、金融、零售、物聯(lián)網(wǎng)等行業(yè)的快速發(fā)展,現(xiàn)實(shí)社會織起了了一張龐大而復(fù)雜的關(guān)系網(wǎng),傳統(tǒng)數(shù)據(jù)庫很難處理關(guān)系運(yùn)算。大數(shù)據(jù)行業(yè)需要處理的數(shù)據(jù)之間的關(guān)系隨數(shù)據(jù)量呈幾何級數(shù)增長,急需一種支持海量復(fù)雜數(shù)據(jù)關(guān)系運(yùn)算的數(shù)據(jù)庫,圖數(shù)據(jù)庫應(yīng)運(yùn)而生。

    2024年01月23日
    瀏覽(25)
  • 圖數(shù)據(jù)庫(五):Neo4j中的更新操作

    圖數(shù)據(jù)庫(五):Neo4j中的更新操作

    學(xué)過Mysql的人都知道,對于數(shù)據(jù)庫的操作大多數(shù)都是增刪改查,同樣對于Neo4j圖數(shù)據(jù)庫也一樣,今天我們就學(xué)習(xí)一下Neo4j中的更新操作。 使用set來修改節(jié)點(diǎn),屬性的值,但是如果該屬性沒有就新增該屬性 此時我們可以看到,在id為172的Role節(jié)點(diǎn)中沒有age屬性,我們使用set屬性就

    2024年02月07日
    瀏覽(26)
  • 圖數(shù)據(jù)庫(四):Neo4j中的刪除操作

    圖數(shù)據(jù)庫(四):Neo4j中的刪除操作

    Delete 在Neo4j中說到刪除節(jié)點(diǎn),我們第一時間想到的肯定是Delete。 的確我們也經(jīng)常使用Delete來刪除節(jié)點(diǎn)。 刪除節(jié)點(diǎn) 如果節(jié)點(diǎn),沒有關(guān)聯(lián)關(guān)系那可以直接使用delete刪除 如果節(jié)點(diǎn)存在關(guān)聯(lián)關(guān)系,那么我們使用delete刪除就會報(bào)錯 此時如果一定要刪除,那么我們可以使用deta

    2024年02月13日
    瀏覽(23)
  • 圖數(shù)據(jù)庫(六):Neo4j中的查詢操作

    圖數(shù)據(jù)庫(六):Neo4j中的查詢操作

    上一篇文章我們學(xué)習(xí)了Neo4j中的更新操作,今天我們學(xué)習(xí)一下Neo4j的查詢。 說到查詢我們就不得不提到Match 查詢所有節(jié)點(diǎn) 條件查詢 在條件查詢的過程中我們經(jīng)常會使用where來進(jìn)行過濾,有時候我們還可以使用到With,With可以看成用于向后面的查詢傳遞結(jié)果

    2024年02月09日
    瀏覽(25)
  • 圖數(shù)據(jù)庫Neo4j實(shí)戰(zhàn)(全網(wǎng)最詳細(xì)教程)

    圖數(shù)據(jù)庫Neo4j實(shí)戰(zhàn)(全網(wǎng)最詳細(xì)教程)

    1.1 什么是圖數(shù)據(jù)庫(graph database) 隨著社交、電商、金融、零售、物聯(lián)網(wǎng)等行業(yè)的快速發(fā)展,現(xiàn)實(shí)社會織起了了一張龐大而復(fù)雜的關(guān)系網(wǎng),傳統(tǒng)數(shù)據(jù)庫很難處理關(guān)系運(yùn)算。大數(shù)據(jù)行業(yè)需要處理的數(shù)據(jù)之間的關(guān)系隨數(shù)據(jù)量呈幾何級數(shù)增長,急需一種支持海量復(fù)雜數(shù)據(jù)關(guān)系運(yùn)算的

    2023年04月09日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包