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) #创建张三和李四关系。