百度網(wǎng)站架構(gòu)seo綜合查詢怎么用的
天行健,君子以自強不息;地勢坤,君子以厚德載物。
每個人都有惰性,但不斷學習是好好生活的根本,共勉!
文章均為學習整理筆記,分享記錄為主,如有錯誤請指正,共同學習進步。
CQL命令實例演示
- 一、縮寫
- 二、Node節(jié)點操作
- 1. 創(chuàng)建節(jié)點
- 2. 查詢節(jié)點
- 2.1 查詢?nèi)抗?jié)點
- 2.2 查詢指定標簽的節(jié)點
- 2.3 查詢指定標簽指定屬性的節(jié)點
- 3. 修改節(jié)點
- 4. 刪除節(jié)點
- 4.1 刪除指定標簽指定屬性的節(jié)點
- 4.2 刪除指定標簽節(jié)點
- 4.3 刪除全部節(jié)點
- 4.4 永久刪除
- 三、Relationship關(guān)系操作
- 1. 創(chuàng)建關(guān)系
- 2. 查詢關(guān)系
- 2.1 查詢所有的關(guān)系
- 2.2 條件查詢關(guān)系
- 2.3 條件查詢關(guān)系-where
- 2.4 查詢指定兩個節(jié)點的關(guān)系
- 3. 修改關(guān)系
- 3.1 批量修改關(guān)系信息
- 3.2 修改指定兩個節(jié)點的關(guān)系
- 3.3 指定開始節(jié)點來修改關(guān)系信息
- 3.4 指定結(jié)束節(jié)點來修改關(guān)系信息
- 4. 刪除關(guān)系
- 4.1 批量刪除指定標簽的所有關(guān)系
- 4.2 刪除指定標簽指定屬性為開始節(jié)點的所有關(guān)系
- 4.3 刪除指定標簽指定屬性為結(jié)束節(jié)點的所有關(guān)系
- 4.5 刪除指定標簽指定屬性的兩個節(jié)點的所有關(guān)系
- 4.2 刪除指定標簽為開始節(jié)點的所有關(guān)系
- 4.1 批量刪除所有關(guān)系
一、縮寫
n
:node節(jié)點
L
:Label標簽
p
:屬性名
v
:屬性值
r
:關(guān)系
R
:關(guān)系標簽
屬性值為字符串或者數(shù)字,其余好像會報錯,目前嘗試這兩個類型不會報錯
文章中的語法的縮寫字母并非固定,可以任意字母更換,但推薦使用對應(yīng)縮寫,方便理解和記憶。
二、Node節(jié)點操作
對node節(jié)點的增刪改查操作
1. 創(chuàng)建節(jié)點
create新增,語法
create(n:L{p1:v1,p2:v2}) return n
花括號中節(jié)點的屬性可以是一個也可以是多個
不定義屬性時屬性值為空,僅有一個id默認屬性
如:創(chuàng)建u節(jié)點,標簽為USER,屬性name值為李白,屬性age為28,并返回創(chuàng)建的節(jié)點
create(u:USER{name:"李白",age:28}) return u
為了后面的演示,我們這里多創(chuàng)建幾個,依次執(zhí)行以下命令
//注意,age對應(yīng)的值都是數(shù)字類型create(u:USER{name:"王昭君",age:24})create(u:USER{name:"貂蟬",age:20})create(u:USER{name:"呂布",age:26})//注意,price對應(yīng)的值都是字符串類型create(c:CAR{name:"奔馳",price:"30"})create(c:CAR{name:"寶馬",price:"29"})create(c:CAR{name:"奧迪",price:"33"})create(c:CAR{name:"比亞迪",price:"25"})
注:這里需要注意,在創(chuàng)建節(jié)點時,屬性name的值會顯示在查看時的節(jié)點中心,如果屬性名不是name可能不會顯示(不一定),我用userName作為屬性名它是不顯示的,這點需要注意,不過不影響使用,信息都會在節(jié)點中,只是看瀏覽器中節(jié)點中心沒有名稱了而已
2. 查詢節(jié)點
match查詢
2.1 查詢?nèi)抗?jié)點
語法(括號可以省略)
match(n) return(n)
//或
match(n) return n
在瀏覽器中輸入上述命令查詢所有節(jié)點
2.2 查詢指定標簽的節(jié)點
語法
match(n:L)
如:查看CAR標簽的所有節(jié)點
match(c:CAR)return c
這里只會顯示CAR標簽的節(jié)點
2.3 查詢指定標簽指定屬性的節(jié)點
語法
match(n:L{p1:v1,p2:v2})
如:查看標簽為CAR屬性名為name值為寶馬的節(jié)點
match(c:CAR{name:"奧迪"})
3. 修改節(jié)點
set修改,但需要配合match搜索使用,語法
match(n:L{p1:v1,p2:v2})set n.p1=v11,n.p2=v22
如修改標簽為CAR屬性name值為奧迪的節(jié)點,將其屬性price的值改為40
match(c:CAR{name:"奧迪"})set c.price=40
不適用return時返回的是一行描述信息
match(c:CAR{name:"奧迪"})set c.price=41 return c
加上return返回的內(nèi)容就是如數(shù)據(jù)了,如下
4. 刪除節(jié)點
delete刪除,如果節(jié)點存在關(guān)系,則無法使用delete刪除,此時需要在delete前加上detach
關(guān)鍵字強制刪除
(為了不重新創(chuàng)建關(guān)系,刪除節(jié)點部分是在刪除關(guān)系后操作的,屬于整篇文章最后演示的內(nèi)容)
先查看全部節(jié)點
match(n)return n
4.1 刪除指定標簽指定屬性的節(jié)點
語法
match(n:L{p1:v1,p2:v2})delete n
如:刪除標簽為CAR屬性name為寶馬的節(jié)點
match(c:CAR{name:"寶馬"}) delete c
查看全部節(jié)點驗證
match(n)return n
寶馬已被刪除
4.2 刪除指定標簽節(jié)點
語法
match(n:L) delete n
如刪除標簽為CAR的所有節(jié)點
match(c:CAR) delete c
查看全部節(jié)點驗證
match(n)return n
CAR標簽的節(jié)點已全被刪除
4.3 刪除全部節(jié)點
語法
match(n) delete n
查看全部節(jié)點驗證
match(n)return n
所有節(jié)點已全被刪除
4.4 永久刪除
如果節(jié)點包含關(guān)系,則無法直接使用delete刪除,需要使用detach配置delete強制刪除
使用detach可以實現(xiàn)永久刪除數(shù)據(jù),語法
match(n) detach delete n
三、Relationship關(guān)系操作
我們先多創(chuàng)建兩個USER節(jié)點
create(u:USER{name:"亞瑟",age:27})create(u:USER{name:"安其拉",age:22})
再多創(chuàng)建幾個CAR節(jié)點
create(c:CAR{name:"小鵬",price:"28"})create(c:CAR{name:"蔚來",price:"24"})create(c:CAR{name:"極氪",price:"30"})create(c:CAR{name:"智己",price:"31"})
1. 創(chuàng)建關(guān)系
創(chuàng)建兩個節(jié)點之間的關(guān)系,并給關(guān)系添加屬性信息,添加后返回節(jié)點和關(guān)系的圖數(shù)據(jù)結(jié)果,語法
match(n1:L1{p1:v1,p2:v2}),(n2:L2{p11:v11}) create(n1)-[r:R{p111:v111}]->(n2) return n1,r,n2
如在標簽為USER屬性name為李白的節(jié)點和標簽為CAR屬性name為寶馬的節(jié)點之間創(chuàng)建關(guān)系
關(guān)系標簽為BUY標簽屬性date值為20230728,然后返回創(chuàng)建后的結(jié)果
match(u:USER{name:"李白"}),(c:CAR{name:"寶馬"}) create (u)-[r:BUY{date:"20230728"}]->(c) return u,r,c
當然了,也可以將箭頭反過來,創(chuàng)建關(guān)系標簽為BELONG屬性expire值為100
match(u:USER{name:"李白"}),(c:CAR{name:"寶馬"}) create (u)<-[r:BELONG{expire:"100"}]-(c) return u,r,c
為了方便后續(xù)演示,這里我們多創(chuàng)建幾個關(guān)系
match(u:USER{name:"李白"}),(c:CAR{name:"奧迪"}) create (u)-[r:BUY{date:"20230728"}]->(c) return u,r,cmatch(u:USER{name:"李白"}),(c:CAR{name:"奧迪"}) create (u)<-[r:BELONG{expire:"200"}]-(c) return u,r,cmatch(u:USER{name:"亞瑟"}),(c:CAR{name:"比亞迪"})create (u)-[r:BUY{date:"20230729"}]->(c) return u,r,cmatch(u:USER{name:"貂蟬"}),(c:CAR{name:"智己"})create (u)-[r:BUY{date:"20230830"}]->(c) return u,r,cmatch(u:USER{name:"安其拉"}),(c:CAR{name:"小鵬"})create (u)-[r:BUY{date:"20230720"}]->(c) return u,r,cmatch(u:USER{name:"王昭君"}),(c:CAR{name:"極氪"})create (u)-[r:BUY{date:"20230930"}]->(c) return u,r,cmatch(u:USER{name:"呂布"}),(c:CAR{name:"奔馳"})create (u)-[r:BUY{date:"20230930"}]->(c) return u,r,c
2. 查詢關(guān)系
同樣的查詢關(guān)系也是用match
2.1 查詢所有的關(guān)系
語法
match(n1)-[r]->(n2)return n1,r,n2
這里好像有沒有箭頭都可以,>
可省略
如查詢所有節(jié)點的關(guān)系
match(u)-[r]->(c) return u,r,c
只會查看所有帶關(guān)系的數(shù)據(jù),不存在關(guān)系的數(shù)據(jù)不在其中
如果return后不加節(jié)點只有關(guān)系參數(shù)r,則返回的是json格式的數(shù)據(jù)信息
match(u)-[r]->(c) return r
2.2 條件查詢關(guān)系
查詢n1節(jié)點屬性p1、p2對應(yīng)的所有關(guān)系,語法
match(n1:L1{p1:v1,p2:v2})-[r]->(n2) return n1,r,n2
如:查看USER標簽的屬性name為李白的節(jié)點的所有關(guān)系
match(u:USER{name:"李白"})-[r]->(c)return u,r,c
2.3 條件查詢關(guān)系-where
使用where子句查詢屬性p1值為v1屬性p2值為v2的n1節(jié)點的所有關(guān)系
match(n1)-[r]->(n2) where n1.p1=v1 and n1.p2=v2 return n1,r,n2
如:查看USER標簽的屬性name為李白的節(jié)點的所有關(guān)系
match(u)-[r]-(c) where u.name="李白" return u,r,c
2.4 查詢指定兩個節(jié)點的關(guān)系
語法
match(n1:L1{p1:v1})-[r]->(n2:L2{p2:v2})return n1,r,n2
如查看USER標簽的屬性name為李白的節(jié)點和CAR標簽屬性name為寶馬的所有關(guān)系
match(u:USER{name:"李白"})-[r]->(c:CAR{name:"寶馬"})return u,r,c
或者(where子句查詢)
match(u)-[r]-(c) where u.name="李白" and c.name="寶馬" return u,r,c
3. 修改關(guān)系
3.1 批量修改關(guān)系信息
修改指定關(guān)系標簽的指定屬性信息
將標簽為R的所有關(guān)系屬性pr1改為vr1,并返回修改后的圖數(shù)據(jù),語法
match(n1)-[r]-(n2) set r.pr1 = vr1 return n1,r,n2
//或
match(n1)-[r:R]-(n2) set r.pr1 = vr1 return n1,r,n2
如:將所有關(guān)系標簽為BELONG的屬性expire的值改為200
match(u)-[r:BELONG]-(c) set r.expire=200 return u,r,c
我們可以看到只有李白有BELONG關(guān)系,且這兩個關(guān)系的屬性expire都改為了200
3.2 修改指定兩個節(jié)點的關(guān)系
修改兩個指定節(jié)點的指定關(guān)系標簽的關(guān)系屬性信息,語法
match(n1:L1{p1:v1})-[r]->(n2:L2{p2:v2}) set r.pr1=vr1 return n1,r,n2
//或
match(n1:L1{p1:v1})-[r:R]->(n2:L2{p2:v2}) set r.pr1=vr1 return n1,r,n2
如:修改李白和奧迪兩個節(jié)點的BUY關(guān)系的屬性,將date的值改為20230808
match(u:USER{name:"李白"})-[r:BUY]->(c:CAR{name:"奧迪"}) set r.date="20230808" return u,r,c
3.3 指定開始節(jié)點來修改關(guān)系信息
match(n1:L1{p1:v1})-[r:R]->(n2) set r.pr1=vr1 return n1,r,n2
如:指定李白為開始節(jié)點,根據(jù)開始節(jié)點修改李白對應(yīng)的BUY標簽關(guān)系的信息,將date屬性值都改為20230909
match(u:USER{name:"李白"})-[r:BUY]->(c) set r.date="20230909" return u,r,c
3.4 指定結(jié)束節(jié)點來修改關(guān)系信息
箭頭可指向右側(cè)也可指向左側(cè)
match(n1:L1{p1:v1})<-[r:R]-(n2) set r.pr1=vr1 return n1,r,n2
如:指定李白為結(jié)束節(jié)點,根據(jù)結(jié)束節(jié)點修改李白對應(yīng)的BELONG標簽關(guān)系的信息,將expire屬性值都改為500
match(u:USER{name:"李白"})<-[r:BELONG]-(c) set r.expire="500" return u,r,c
4. 刪除關(guān)系
4.1 批量刪除指定標簽的所有關(guān)系
語法
match(n1)-[r:R]->(n2) delete r
如:刪除BELONG標簽的所有關(guān)系
match(u)-[r:BELONG]->(c) delete r
查看所有關(guān)系,看是否被刪除
match(u)-[r]->(c)return u,r,c
的確刪除了
4.2 刪除指定標簽指定屬性為開始節(jié)點的所有關(guān)系
語法
match(n1:L1{p1:v1})-[r]->(n2) delete r
如:刪除以李白為開始節(jié)點的所有關(guān)系
match(u:USER{name:"李白"})-[r]->(c) delete r
查看所有關(guān)系,看是否被刪除
match(u)-[r]->(c)return u,r,c
沒有看到李白的節(jié)點,表示已經(jīng)沒有存在的關(guān)系了
4.3 刪除指定標簽指定屬性為結(jié)束節(jié)點的所有關(guān)系
語法
match(n1:L1{p1:v1})<-[r]-(n2) delete r
如:刪除以比亞迪為結(jié)束節(jié)點的所有關(guān)系
match(c:CAR{name:"比亞迪"})<-[r]-(u) delete r
查看所有關(guān)系,看是否被刪除
match(u)-[r]->(c)return u,r,c
已經(jīng)沒有了比亞迪節(jié)點的關(guān)系
4.5 刪除指定標簽指定屬性的兩個節(jié)點的所有關(guān)系
語法
match(n1:L1{p1:v1})-[r]-(n2:L2{p2:v2}) delete r
如:刪除安其拉到小鵬之間的關(guān)系
match(u:USER{name:"安其拉"})-[r]->(c:CAR{name:"小鵬"}) delete r
查看所有關(guān)系,看是否被刪除
match(u)-[r]->(c)return u,r,c
安其拉已經(jīng)無了
4.2 刪除指定標簽為開始節(jié)點的所有關(guān)系
語法
match(n1:L1)-[r]->(n2) delete r
如:刪除以USER標簽為開始節(jié)點的所有關(guān)系
match(u:USER)-[r]->(c) delete r
查看所有關(guān)系,看是否被刪除
match(u)-[r]->(c)return u,r,c
含有關(guān)系的節(jié)點已經(jīng)全部沒了
4.1 批量刪除所有關(guān)系
語法
match(n1)-[r]->(n2) delete r
舉例,可直接使用
我這里直接用
match(u)-[r]->(c) delete r
前面已經(jīng)刪除完了,不演示了。
以上就是CQL命令增刪改查演示內(nèi)容,感謝閱讀,祝君暴富!