语法-命名规则和建议

Neo
Neo
2022-03-12 / 0 评论 / 49 阅读

本节内容源自Cypher官方手册V4.4版,笔者对其进行学习、翻译、记录。

命名规则

  • 字母字符:

    • 名称应以字母字符开头。
    • 包括“非英文”字符,例如å, ä,ö等ü。
  • 数字:

    • 名称不应以数字开头。
    • 举例来说,1first不允许,而first1允许。
  • 符号:

    • 名称不应包含符号,下划线除外,如 my_variable ,或 $ 作为表示参数的第一个字符,如 $myParam 。
  • 长度:

    • 可以很长,最多为65535( 2^16 - 1) 或65534字符,具体取决于 Neo4j 的版本。
  • 区分大小写:

    • 名称区分大小写,因此, :PERSON,:Person 和 :person 是三个不同的标签,n 和 N 是两个不同的变量。
  • 空白字符:

    • 前导和尾随空白字符将被自动删除。例如,MATCH ( a ) RETURN a等价于MATCH (a) RETURN a。

非字母字符,包括数字、符号和空格字符,可以在名称中使用,但必须使用反引号进行转义。例如:^n1first$$nmy variable has spaces。数据库名称是一个例外,可能包含点而不需要转义。例如:命名数据库foo.bar.baz是完全有效的。

范围和命名空间规则

  • 节点标签、关系类型和属性名称可以重用名称。

    • 以下查询(带有a的标签、类型和属性名称)是有效的:CREATE (a:a {a: 'a'})-[r:a]->(b:a {a: 'a'}).
  • 节点和关系的变量不得在同一查询范围内重复使用名称。

    • 以下查询无效,因为节点和关系都具有名称a: CREATE (a)-[a]->(b)。

建议

以下是推荐的命名约定:

  • 节点标签

    • 驼峰式,以大写字符开头,:VehicleOwner 而不是 :vehicle_owner等
  • 关系类型

    • 大写,使用下划线分隔单词,:OWNS_VEHICLE而不是 :ownsVehicle 等