Neo4j -- Cypher 教程(CQL)

一. Cypher介绍

Cypher”是一个描述性的图形查询语言,允许不必编写图形结构的遍历代码对图形存储有表现力和效率的查询。Cypher还在继续发展和成熟,这也就意味着有可能会出现语法的变化。同时也意味着作为组件没有经历严格的性能测试。
Cypher设计的目的是一个人类查询语言,适合于开发者和在数据库上做点对点模式(ad-hoc)查询的专业操作人员。它的构念是基于英语单词和灵巧的图解。
Cyper通过一系列不同的方法和建立于确定的实践为表达查询而激发的。许多关键字如like和order by是受SQL的启发。模式匹配的表达式来自于SPARQL。正则表达式匹配实现实用Scala programming language语言。
Cypher是一个申明式的语言。对比命令式语言如Java和脚本语言如Gremlin和JRuby,它的焦点在于从图中如何找回(what to retrieve),而不是怎么去做。这使得在不对用户公布的实现细节里关心的是怎么优化查询。
Neo4j使用Cypher查询图形数据,和SQL很相似,Cypher语言的关键字不区分大小写,但是属性值,标签,关系类型和变量是区分大小写的。

注:不理解一些概念的童鞋可以参考https://blog.csdn.net/zfqbd/article/details/78857643


二. Cypher语法

Neo4j的主要构建块是:节点、关系、属性,CQL命令用来操作这三个构建块,我们使用CQL基本命令来描绘如图所示的关系:

è¿éåå¾çæè¿°

 

  • Neo4j CQL - CREATE命令  创建节点或者关系
CREATE (<node-name>:<label-name>)
    CREATE (emp:Employee)
    // 这里emp是一个节点名
    // Employee是emp节点的标签名称    

    //创建无属性节点
     create (p:Person)

    //创建多个标签 标签Person标签People
     create (p:Person:People)

    //创建带属性节点
CREATE (
   <node-name>:<label-name>
   { 	
      <Property1-name>:<Property1-Value>
      ........
      <Propertyn-name>:<Propertyn-Value>
   }
)
     create (p:Person{name:"刘备",word:"玄德",horse:"的卢",weapon:"双股剑",sex:"男"})
     create (p:Person{name:"关羽",word:"长生",horse:"赤兔",weapon:"青龙偃月刀"})
     create (p:Person{name:"张飞",word:"翼德",horse:"王追",weapon:"丈八蛇矛"})  
     create (p:Person{name:"曹操",word:"孟德",horse:"绝影",weapon:"青虹剑"})  
     create (p:Person{name:"孙权",word:"仲谋",horse:"快航",weapon:"白虹剑"})  

    //创建无属性的关系
    match(p:Person),(g:Person) 
    where p.name="刘备" and g.name="关羽"
    create(p)-[r:MY_GENERAL]->(g) 

    //创建带属性的关系 r是关系名称, MY_ENEMY是一个关系标签名称
    match(p:Person),(g:Person) 
    where p.name="刘备" and g.name="孙权"
    create(p)-[r:MY_ENEMY{relative:"0"}]->(g) 
    return r

  • Neo4j CQL - MATCH命令(从数据库获取有关节点和属性的数据,从数据库获取有关节点,关系和属性的数据)
MATCH(<node-name>:<label-name>)

match (p:Person) //匹配模式,无return返回报错, 一般和return配合使用

  • Neo4j CQL - RETURN子句(返回感兴趣的结果)
语法:
RETURN 
   <node-name>.<property1-name>,
   ........
   <node-name>.<propertyn-name>
match (p:Person)
   return p.name  
  • Neo4j CQL - DELETE删除 (删除节点和关联关系,与MATCH命令一起使用。 语法如下:)
DELETE <node-name-list>

DELETE节点和关系子句语法

DELETE <node1-name>,<node2-name>,<relationship-name>

   // 删除节点
   match (p: Person) 
   where p.name="刘备"
   delete p

   // 删除关系
   MATCH (p: Person)-[r:MY_GENERAL]-(g:Person) 
   DELETE r

  // 删除两个节点和一个关系
  MATCH (cc: CreditCard)-[rel]-(c:Customer) 
  DELETE cc,c,rel
  • Neo4j CQL - REMOVE删除

 

 

 

 

 

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Neo4j CQLCypher Query Language)是用于查询和操作Neo4j图数据库的语言。它提供了一组强大的功能,使用户能够对图数据库中的节点和关系进行灵活的查询和操作。 在Neo4j CQL中,你可以使用MATCH命令来指定要匹配的节点和关系,并使用RETURN子句来返回所需的结果。与SQL类似,Neo4j CQL还提供了一些聚合函数,如COUNT、SUM、MIN、MAX和AVG,用于对节点和关系进行聚合操作。可以使用聚合函数来处理一组节点并返回聚合值,类似于SQL中的GROUP BY子句。 此外,Neo4j CQL还提供了一组关系函数,用于获取关系的细节,如开始节点、结束节点等。这些关系函数可以在MATCH命令中使用,以便在查询中获取所需的关系信息。 关于数据库备份和恢复,当你需要对Neo4j数据进行备份、还原或迁移时,你可以使用neo4j-admin工具。在进行这些操作之前,你需要关闭Neo4j服务。使用neo4j-admin dump命令可以将数据导出到一个备份文件,而使用neo4j-admin load命令可以从备份文件中导入数据进行恢复。 总结起来,Neo4j CQL提供了丰富的功能来查询和操作图数据库,包括MATCH命令、RETURN子句、聚合函数和关系函数。同时,使用neo4j-admin工具可以进行数据库备份和恢复操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Neo4j - CQL使用](https://blog.csdn.net/weixin_43939924/article/details/125131249)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值