图引用

图引用是用于指定查询目标图的值。它们主要与 USE 子句、图函数(例如 graph.byName())配合使用,并在管理命令中引用数据库和别名时使用。

SHOW DATABASESSHOW ALIASES FOR DATABASE 输出的 name 列可以用作图引用的标识符。

当引用复合数据库中的成员时,标识符定义为 <composite-name>.<alias-name>,其中点号作为复合数据库名称和别名之间的分隔符。尽管不建议创建包含点号的数据库或别名,但可以引用复合数据库 some.composite 中的别名 some.alias,写作 some.composite.some.alias

静态图引用

静态图引用是对数据库中图的直接引用。其中包括:

  • 管理数据库和别名时的数据库和别名名称:CREATE DATABASE <symbolic-name>

  • 使用 USE 子句选择图时的数据库和别名名称:USE <symbolic-name>USE <symbolic-name>.<symbolic-name>(适用于复合数据库的成员)。

动态图引用

动态图引用是使用在查询执行期间通过函数求值的变量来引用图。其中包括:

  • 使用 graph.byName() 函数的动态图引用,用于访问指定名称的图:USE graph.byName(<string-expression>)

  • 使用 graph.byElementId() 函数的动态图引用,用于访问给定节点或关系所在的图:USE graph.byElementId(<element-id-string>)

  • 使用 graph.propertiesByName() 函数检索图的属性:graph.propertiesByName(<string-expression>)

规则

当使用标识符(静态图引用、管理命令)或 graph.byName 函数时,以下规则适用于图引用。

USE graph.byName(<graph-reference>) 通常等同于 USE <graph-reference>。如果名称包含特殊字符,可能会有所不同。

  • 作为标识符传递的图引用(例如 USE <graph-reference>)应用符号名称的转义规则。图名称可以是不带引号的(例如 USE neo4j),也可以是整体用反引号括起来的(例如 USE `db-with-dash`)。

  • 作为图函数传递的图引用(例如 USE graph.byName(<graph-reference>))应用字符串字面量的转义规则。请注意,引号会被视为名称的一部分,例如 USE graph.byName('`db-with-dash`') 将尝试解析图引用 `db-with-dash`

例如,图引用 db-with-dash 可以通过以下方式传递:

  • USE `db-with-dash`

  • USE graph.byName('db-with-dash')

  • USE graph.byName($param),其中参数 $paramdb-with-dash