(六)图数据neo4j之cypher(一)

时间:2023-03-09 22:52:42
(六)图数据neo4j之cypher(一)

1.Cypher概述

cypher是一种声明式的图数据库查询语言,能高效的查询和更新图数据库,是依赖于模式的。所谓模式(Patterns)是就是众多节点和关系的任意复杂想法。

(1)节点语法

cypher使用()来表示一个节点,以下几种常见的 节点表示方法。

() 匿名节点

(n) 变量为n的节点

(:Movie)匿名属于Movie标签的节点

(n:Movie)变量为n ,属于Movie的节点

(n:Movie{name:"zhangsan"})  变量为n,属于Movie节点,且还有name属性,属性值为zhangsan.

  (2)   关系 语法

     Cypher中使用一对短横线(--)表示一个无方向关系,有方向关系使用-->和<--来表示。方括号[....]可用于添加详情。里面包含变量、属性或者类型信息。常见 的表达式如下:

--> 有方向关系

-[role]-> 变量名为role的有向关系

-[:ACTED_IN]->  名称为ACTED_IN的关系.

-[role:ACTED_IN]-> 名称为ACTED_IN关系,且变量名为role

-[role:ACTED_IN{roles:["NEO"]}]->   关系名ACTED_IN,变量为role,属性为名称为roles,属性值为:NEO。

关系的类型类似于节点的标签,关系的属性等同于节点的属性。属性的值可以为数值。

实例说明;创建一个用户名节点名为zhangsan,还有name属性,属性职位‘zhangsan’, age属性值为100,属于Person标签的人。

创建一个用户节点名为lisi,name属性为lisi,age属性为50的 人,他们之间关系是FRIEND_OF,且还有关系属性oldfrend 。

具体的实现如下:

create (zhangsan:Person{name:"zhangsan",age:100})  return zhangsan   #创建节点test1。

create (lisi:Persion{name:"lisi",age:"50"}) return lisi   #创建节点test2。

create(zhangsan)-[:FRIEND_OF{reli:["oldfrend "]}]->(lisi) #创建张三和李四关系。