新技能-大数据利器之图数据库neo4j:3. 初识cypher

cyhper是什么?

cyhper是neo4j图数据库的执行语言,类似于mysql、Oracle这类关系型数据库都具备sql语言执行能力,而neo4j与cyhper的关系就像是mysql与sql的关系

cyhper能做什么?

Cypher语句可以查询节点、关系、标签和属性,支持关系查询、统计、汇总操作
Cypher语句可以对节点、关系、标签和属性进行创建、更新和删除操作。
Cypher语句可以管理索引和约束。

cyhper主要命令

(此处仅代表本人常用命令,其他命令请详阅官方文档)

  1. CREATE:创建节点,关系和属性
  2. DELETE:删除节点和关系
  3. SET:添加或更新标签
  4. MATCH:检索有关节点,关系和属性数据
  5. WHERE:提供条件过滤检索数据
  6. RETURN:返回查询结果

cyhper 使用图解

  1. CREATE 创建
    在这里插入图片描述
    说明:CREATE (a:test),代表创建一个节点test,无属性
    在这里插入图片描述
    说明: create (a : pig {name :“佩奇”}),代表创建一个节点,有一个name的属性,属性的值是:佩奇
    在这里插入图片描述
    说明: create (a : pig {name :“乔治”}) create (b : pig {name :“猪爸爸”}) create (a) - [:父子] -> (b),代表创建两个节点,各有一个name属性,再创建一个关系,a(乔治)与b(猪爸爸)的关系是父子关系

  2. MATCH 查询
    在这里插入图片描述
    说明: MATCH (n:pig) RETURN n,代表查询pig节点的所有数据,将查询结果赋值给n,RETURN关键字代表返回n的数据给前端
    在这里插入图片描述
    在这里插入图片描述
    说明:MATCH (n:pig{name:“乔治”}) RETURN n,代表查询乔治的数据
    说明:MATCH (n:pig) where n.name=“乔治” RETURN n,效果同上
    在这里插入图片描述
    说明:MATCH p =((a:pig{name:“乔治”}) - [r] -> (b:pig{name:“猪妈妈”})) return p,代表查询乔治和猪妈妈的关系

  3. SET 修改或新增节点属性
    在这里插入图片描述
    说明:MATCH (n:pig{name:“乔治”}) set n.age=3 return n,代表查询出乔治的节点,修改age属性为3,并返回

  4. DELETE 删除节点或关系
    在这里插入图片描述
    说明:MATCH (n:pig{name:“佩奇”}) - [r] - () delete r,代表查询出佩奇的所有关系,赋值给r,最终删除r
    在这里插入图片描述
    说明:MATCH (n:pig{name:“佩奇”}) delete n,代表查询出佩奇的节点,赋值给n,最终删除n

cyhper字符串函数

  1. UPPER 用于将所有字母更改为大写字母
    MATCH (n:pig) return UPPER(n.title)
  2. LOWER 用于将所有字母改为小写字母
    MATCH (n:pig) return LOWER(n.title)
  3. SUBSTRING 用于获取给定String的子字符串
    MATCH (n:pig) return SUBSTRING (n.title, 0,1)
  4. REPLACE 用于替换一个字符串的子字符串
    MATCH (n:pig) return REPLACE(n.title, “a”,“b”)

cyhper 聚合

  1. COUNT 返回由MATCH命令返回的行数
    示例:MATCH (n:pig) return count(n)
  2. MAX 从MATCH命令返回的一组行返回最大值
    示例:MATCH (n:pig) return max(n.age)
  3. MIN 返回由MATCH命令返回的一组行的最小值
    示例:MATCH (n:pig) return min(n.age)
  4. SUM 返回由MATCH命令返回的所有行的求和值
    示例:MATCH (n:pig) return sum(n.age)
  5. AVG 返回由MATCH命令返回的所有行的平均值
    示例:MATCH (n:pig) return avg(n.age)

总结

cyhper语言最开始使用还是有很多要注意的地方,一不小心就写错了,所以还是要细心一点。
cyhper语言是一种很灵活的语言,上面介绍只是比较常规的操作,下面是个人比较喜欢的一些编写风格,可以参考一下:

  1. 创建3个节点,并将两个节点创建关系
    CREATE (a:Sheeps{name:“喜羊羊”}) CREATE (b:Sheeps{name:“美羊羊”}) CREATE (c:Sheeps{name:“沸羊羊”}) CREATE (a) - [:兄弟] -> (b)
  2. 查询与乔治有关系的所有节点
    MATCH p =((a:pig{name:“乔治”}) - [r] -> ()) return p
  3. 查询与乔治有关系的10个节点
    MATCH p =((a:pig{name:“乔治”}) - [r] -> ()) return p limit 10
  4. 查找乔治与猪妈妈的关系,查询深度为5,查到则返回,没有查到则中断
    MATCH p =((a:pig{name:“乔治”}) - [*…5] -> (b:pig{name:“猪妈妈”})) return p
  5. 查询乔治与猪妈妈深度10以内查找所有存在的关系中的最短路径关系
    MATCH p =shortestpath((a:pig{name:“乔治”}) - [*…5] -> (b:pig{name:“猪妈妈”})) return p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值