Neo4j Cypher Query Language學(xué)習(xí)(二)

Neo4j是: ·一個(gè)開源 ·無(wú)Schema ·沒(méi)有SQL ·圖形數(shù)據(jù)庫(kù)

該篇文章主要內(nèi)容包括:

1.Neo4j?CQL -?SET命令:

2.Neo4j?CQL -?Sorting排序:

3.Neo4j?CQL -?UNION聯(lián)盟:

4.Neo4j CQL - LIMIT和SKIP子句:

5.Neo4j?CQL -?合并:

6.Neo4j?CQL -?NULL值:

7.Neo4j?CQL -?IN操作符:

8.Neo4j?CQL -?圖形字體

9.Neo4j -?ID屬性

10..Neo4j -?方向關(guān)系




1.Neo4j?CQL -?SET命令:

·向現(xiàn)有節(jié)點(diǎn)或關(guān)系添加新屬性

·更新現(xiàn)有節(jié)點(diǎn)或關(guān)系的屬性值

SET子句語(yǔ)法

語(yǔ)法:?SET <property-name-list>

語(yǔ)法:?SET?屬性名列表

<property-name-list>語(yǔ)法

<node-label-name>.<property1-name>,

<node-label-name>.<property2-name>,

......

<node-label-name>.<propertyn-name>



先查看一個(gè)節(jié)點(diǎn)已存在的屬性,然后給這個(gè)節(jié)點(diǎn)添加新屬性price

添加新屬性

為這個(gè)節(jié)點(diǎn)添加新屬性price=100

更新屬性值

將屬性price,更新為998


2.Neo4j?CQL -?Sorting排序:

·MATCH?搭配?ORDER?BY? 對(duì)返回的結(jié)果排序

·默認(rèn)是升序,降序需使用DESC子句

ORDER?BY子句語(yǔ)法

語(yǔ)法:?ORDER?BY <property-name-list> [DESC]

語(yǔ)法:?ORDER?BY?屬性名列表 [DESC]


先查看Movie標(biāo)簽節(jié)點(diǎn)的三個(gè)屬性title、tagline、released
按照title排序
按照released排序
按照released降序排序


3.Neo4j?CQL -?UNION聯(lián)盟:

·它將兩組結(jié)果中的公共行組合并返回到一組結(jié)果中。?避免重復(fù)行返回

·限制:?列名稱應(yīng)該相同,列的數(shù)據(jù)類型應(yīng)該相同

UNION子句語(yǔ)法

<MATCH Command1>

UNION

<MATCH Command2>

UNION ALL子句

它結(jié)合并返回兩個(gè)結(jié)果集的所有行成一個(gè)單一的結(jié)果集。? 它返回兩節(jié)點(diǎn)的重復(fù)行

UNION?ALL子句語(yǔ)法

<MATCH Command1>

UNION ALL

<MATCH Command2>


先自己創(chuàng)建一些節(jié)點(diǎn)

CREATE(p:Person {name:"布口袋_天晴了1",sex:"男",age:18})

CREATE(p:Person {name:"布口袋_天晴了2",sex:"男",age:16,school:"CQUPT"})

CREATE(p:Person {name:"布口袋_天晴了2",sex:"男",age:16,school:"CQUPT"})

CREATE(p:Person {name:"布口袋_天晴了2",sex:"男",age:16,school:"CQUPT"})

CREATE(p:Person {name:"布口袋_天晴了3",sex:"男",age:26,school:"CQUPT",school:"YANSHAN"})

當(dāng)創(chuàng)建兩個(gè)屬性名一樣時(shí),該屬性也只在數(shù)據(jù)庫(kù)中存了一個(gè)值
匹配查詢1
匹配查詢2
UNION?ALL?不去重復(fù)
UNION? 去重


4.Neo4j CQL - LIMIT和SKIP子句:

·LIMIT子句用來(lái)過(guò)濾或限制查詢返回的行數(shù),它修剪結(jié)果集定部的結(jié)果。

LIMIT子句語(yǔ)法

語(yǔ)法:?LIMIT <number>

語(yǔ)法:?LIMIT?數(shù)量

SKIP子句語(yǔ)法 (目前這個(gè)語(yǔ)法不管用)

語(yǔ)法: SKIP <number>

語(yǔ)法:?SKIP?數(shù)量


LIMIT 2
SKIP 2? 沒(méi)起作用


5.Neo4j?CQL -?合并:

Neo4j?使用CQL?MEGER命令

·創(chuàng)建節(jié)點(diǎn),關(guān)系,屬性

·為從數(shù)據(jù)庫(kù)檢索數(shù)據(jù)

MERGE =?CREATE +MATCH

Neo4j CQL MEGER命令在圖中搜索給定模式,如果存在,則返回結(jié)果。如果不存在,則它創(chuàng)建新的節(jié)點(diǎn)、關(guān)系并返回結(jié)果。

Neo4j CQL CREATE命令總是向數(shù)據(jù)添加新的節(jié)點(diǎn)。

Neo4j?CQL?MERGE命令將新的節(jié)點(diǎn)添加到數(shù)據(jù)庫(kù),只有當(dāng)它不存時(shí)。

MERGE語(yǔ)法

MERGE(<node-name>:<label-name> {<property1-name>:<property1-value>,

......

<propertyn-name>:<propertyn-value>})


MERGE =?MATCH +?CREATE? 有,就不新建,返回;沒(méi)有,就新建,返回


6.Neo4j?CQL -?NULL值:

Neo4j CQL將空值視為對(duì)節(jié)點(diǎn)或關(guān)系的屬性的缺失值或未定義值。


name born age

過(guò)濾掉name為NULL的項(xiàng)

WHERE p.name IS NOT NULL?過(guò)濾掉名字屬性為NULL的項(xiàng)

過(guò)濾判斷條件:

WHERE xxx IS NULL

WHERE?xxx?IS?NOT?NULL


7.Neo4j?CQL -?IN操作符:

IN運(yùn)算符,提供值的集合。

IN操作符語(yǔ)法

語(yǔ)法: IN[<Collection-of-values>]


查詢,返回
IN[? ]? 從這里面選擇


8.Neo4j?CQL -?圖形字體:


9.Neo4j -?ID屬性:

在Neo4j中,“Id”是節(jié)點(diǎn)和關(guān)系的默認(rèn)內(nèi)部屬性。 這意味著,當(dāng)我們創(chuàng)建一個(gè)新的節(jié)點(diǎn)或關(guān)系時(shí),Neo4j數(shù)據(jù)庫(kù)服務(wù)器將為內(nèi)部使用分配一個(gè)數(shù)字。 它會(huì)自動(dòng)遞增。? ?


10.Neo4j -?方向關(guān)系:

語(yǔ)法上的方向: () - [] -> ()


參考文章:

【1】W3Cschool?Neo4j教程

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容