Neo4j CQL(上)

简介

像Oracle数据库具有查询语言SQL,Neo4j具有CQL作为查询语言。CQL代表Cypher查询语言。

Neo4j CQL

  • Neo4j图形数据库的查询语言
  • 一种声明性模式匹配语言
  • 遵循SQL语法

常用Neo4j CQL命令

  • CREATE命令

    • 创建没有属性的节点,即创建一个没有任何数据的节点

      CREATE (<node-name>:<label-name>)
      

      - <node-name>:创建的节点名称

      • <label-name>:节点标签名称
      • 注:不能使用node-name来访问节点详细信息,应使用此标签名称来访问节点详细信息
    • 创建具有属性的节点,即创建一个具有一些属性(键值对)的节点来存储数据

      CREATE (
         <node-name>:<label-name>
         { 	
            <Property1-name>:<Property1-Value>
            ........
            <Propertyn-name>:<Propertyn-Value>
         }
      )
      

      - <Property1-name>...<Propertyn-name>:属性是键值对。 定义将分配给创建节点的属性的名称

      • <Property1-value>...<Propertyn-value>:属性是键值对。 定义将分配给创建节点的属性的值
  • MATCH命令

    • 从数据库获取有关节点,关系和属性的数据

      MATCH (<node-name>:<label-name>)
      
      • <node-name>:节点名称
      • <label-name>:节点标签名称
    • 注:不能单独使用 MATCH Command 从数据库检索数据。 如果我们单独使用它,那么我们将 InvalidSyntax 错误。MATCH 经常需要与其他的语句配合才可以使用。

    • MATCH (e: ‘Employee’) RETURN e

      MATCH (e: “Employee”) RETURN e

      MATCH (e: Employee) RETURN e

      三个命令都相同,可以选择其中的任何一个

  • RETURN子句

    • 用于检索属性

      RETURN 
         <node-name>.<property1-name>,
         ........
         <node-name>.<propertyn-name>
      
      • <node-name>:节点名称
      • <Property1-name>...<Propertyn-name>:属性是键值对,定义要分配给创建节点的属性的名称
    • 注:不能单独使用RETURN子句

  • MATCH & RETURN匹配和返回

    MATCH Command
    RETURN Command
    
  • CREATE+MATCH + RETURN命令

    • CREATE创建标签

    • 单个标签到节点

      CREATE (<node-name>:<label-name>)
      
    • 多个标签到节点

      CREATE (<node-name>:<label-name1>:<label-name2>.....:<label-namen>)
      
      • <label-name1>:<label-name2>….:<label-namen>:节点的标签名称的列表。
    • 单个标签到关系

      CREATE (<node1-name>:<label1-name>)-[<relationship-name>:<relationship-label-name>]->(<node2-name>:<label2-name>)
      
      • <node1-name>:From节点的名称
      • <node2-name>:To节点的名称
      • <label1-name>:From节点的标签名称
      • <label2-name>:To节点的标签名称
      • <relationship-name>:关系的名称
      • <relationship-label-name>:关系的标签名称
    • 注:Neo4j中的节点标签,基本等同于关系数据库中的table表名,或者说是一个类别。但是跟table不同的是,这里节点很方便的有多个标签: (n:Person :User)。也可以将节点名

  • WHERE子句

    • 简单WHERE子句

      WHERE <condition>
      
    • 复杂WHERE子句

      WHERE <condition> <boolean-operator> <condition>
      
    • <condition>语法

      <property-name> <comparison-operator> <value>
      
      • <property-name>:节点或关系的属性名称
      • <comparison-operator>:比较运算符之一
      • <value>:一个字面值,如数字文字,字符串文字等
    • Neo4j CQL中的布尔运算符

      AND,OR,NOT,XOR

    • Neo4j CQL中的比较运算符

      =,>,<,<=,>=,<>(“不等于”运算符)

  • DELETE删除

    • DELETE节点子句语法

      DELETE <node-name-list>
      
      • <node-name-list>:要从数据库中删除的节点名称列表
    • DELETE节点和关系子句语法

      DELETE <node1-name>,<node2-name>,<relationship-name>
      
      • <node1-name>:用于创建关系的一个起始节点名称
      • <node2-name>:用于创建关系的另一个节点名称
      • <relationship-name>:在和之间创建的关系名称
  • REMOVE删除

    DELETEREMOVE
    主要区别用于删除节点和关联关系用于删除标签和属性
    相似性两个命令都应该与MATCH命令一起使用
    • 删除节点/关系的属性

      REMOVE <property-name-list>
      
      • <property-name-list>:属性名列表,用于永久性地从节点或关系中删除它

      • <property-name-list>属性名列表语法

        <node-name>.<property1-name>,
        <node-name>.<property2-name>, 
        .... 
        <node-name>.<propertyn-name> 
        
    • 删除节点/关系的标签

      REMOVE <label-name-list> 
      
      • <label-name-list> :标签列表,用于永久性地从节点或关系中删除它

      • <label-name-list> 语法

        <node-name>:<label2-name>, 
        .... 
        <node-name>:<labeln-name> 
        
  • SET子句

    • 向现有节点或关系添加新属性

    • 添加或更新属性值

    • 语法

      SET  
      <node-label-name>.<property1-name>,
      <node-label-name>.<property2-name>, 
      .... 
      <node-label-name>.<propertyn-name> 
      
  • ORDER BY排序

    • MATCH查询返回的结果进行排序,可以按升序或降序对行进行排序。

    • 默认情况下,按升序进行排序。 如果要按降序排序,需要使用DESC子句。

    • 语法

      ORDER BY  
      <node-name>.<property1-name>,
      <node-name>.<property2-name>, 
      .... 
      <node-name>.<propertyn-name> [DESC]	  
      
  • 22
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值