Neo4J Cypher語句 學習

2021-07-30 13:48:22 字數 2964 閱讀 7952

以下節點標籤為people,friend,使用者自己也可以設定成其他標籤,查詢時需要用到標籤。這個標籤可以模擬為關聯式資料庫中的表名

建立節點(小紅): create (n:people) return n;

建立關係(小明送禮物給小紅):小明節點id為0,小紅節點id為1

start a =node(0),b=node(1) create (a)-[n:gift]->(b)return n

match (n: people) where n.age =

18return n

match (n: people) where n.age >

18return n

match (n: people) where n.age >=

18return n

match (n: people) where n.age <>

18return n

end

2. match (n:people)-[:gift]->(end:people) return

end

match (n

:people

)[:gift]

-(end

:people)

return

end

match (n

:people

)-[:gift]

-(end

:people)

return

end

在neo4j中,每乙個節點,會自動有乙個唯一id。

查詢id為1的節點,有兩種方式:

以根部為條件,查詢第二層的節點

match (start

:people

)-[:gift*2..2]

->(end

:people)

return

end

以根部為條件,查詢第一層和第二層的節點

match (start

:people

)-[:gift*1..2]

->(end

:people)

return

end

以根部為條件,按級次查詢出所有直接或間接獲得過小明的禮物的人

match (start

:people

)-[:gift*]

->(end

:people)

return

end

刪除2個節點之間的關係:

match (x

:people

)-[r:gift]

->(y

:people

) delete

r

刪除節點,會刪除和該節點有關的所有關係:

match (n

:people

) delete

n

(不按屬性)查詢標籤(people)中一共有多少節點(人):

match (n:people)  return

count(n)

(按屬性)查詢標籤(people)中年齡為18歲的一共有多少節點(人):

三種寫法:

return

count(n)

2. match (n:people) return

count(n)

3. match (n:people) return

count(n.age=18)

查詢標籤(people)中的10個節點(人):

match (n:people)  return  n  limit  10
查詢標籤(people)中所有的不同的age:

match (n:people)   return

distinct(n.age)

根據標籤(people)中的name 排序:

match(n:people)   return  n  order

by name (預設公升序)

match(n:people) return n order

by name asc (公升序)

match(n:people) return n order

by name desc (降序)

求並集,不去重(去重用union):

return n.name

asname

union all

match(n:friend) where n.age=18

return n.name

asname

查詢id為0,5,8的節點:

match  (n)  where id(n)  in[0,5,8]  return  n
判斷節點是否存在 name這個屬性:

查詢name以『小』開頭的節點:

查詢name以『明』結尾的節點:

查詢name中含有 『小』的節點

參考:

neo4j Cypher 查詢語言簡單案例(二)

圖資料庫常規的有 neo4j 支援超多語言 janusgraph titan 分布式 orientdb,google也開源了圖資料庫cayley go語言構成 postgresql儲存rdf格式資料。目前的幾篇相關 neo4j 圖資料庫基本概念 操作羅列與整理 一 neo4j cypher 查詢語言...

學習記錄 neo4j語句

create match dept dept return dept.deptno,dept.dname,dept.location方式一 match dept dept return dept方式二 match dept dept where dept.deptno 1 return dept速度...

Neo4j查詢語句總結

最近一直在做圖資料庫的相關工作,對neo4j的查詢語言cypher使用較多,故在此總結記錄。cypher作為圖資料庫的查詢語言,感覺和關係型資料庫的查詢語言sql差不多吧。1.如何找到乙個節點x,x以某種關係同時連線兩個不同節點a和b match a r relation x r relation ...