USE

USE 子句确定执行查询或查询部分的图。它支持查询和模式命令。

语法

USE 子句只能作为模式命令的前缀出现,或作为查询的第一个子句出现

USE <graph>
<other clauses>

其中 <graph> 指的是 DBMS 中数据库的名称或别名。

复合数据库语法

在针对 复合数据库 运行查询时,USE 子句也可以作为以下的第一个子句出现:

  • 联合部分

    USE <graph>
    <other clauses>
      UNION
    USE <graph>
    <other clauses>
  • 子查询

    CALL () {
      USE <graph>
      <other clauses>
    }

    在子查询中,USE 子句可以出现在 变量作用域子句 后面:CALL () { …​ } (在 Neo4j 5.23 中引入)。或者,如果您使用的是旧版本的 Neo4j,则可以直接出现在 导入的 WITH 子句 后面。

在针对复合数据库执行查询时,USE 子句只能引用当前复合数据库中包含的图。

示例

查询图

在本例中,假设 DBMS 包含一个名为 myDatabase 的数据库

查询
USE myDatabase
MATCH (n) RETURN n

查询复合数据库的构成图

在本例中,假设 DBMS 包含一个名为 myComposite 的复合数据库,该数据库包含一个名为 myConstituent 的别名

查询
USE myComposite.myConstituent
MATCH (n) RETURN n

动态查询复合数据库的构成图

内置函数 graph.byName() 可用于 USE 子句,从包含构成图的限定名称的 STRING 值解析构成图。

此示例使用一个名为 myComposite 的复合数据库,该数据库包含一个名为 myConstituent 的别名

查询
USE graph.byName('myComposite.myConstituent')
MATCH (n) RETURN n

参数可以是任何计算为构成图名称的表达式,例如参数

查询
USE graph.byName($graphName)
MATCH (n) RETURN n

使用 elementId 查询复合数据库的构成图

graph.byElementId() 函数(在 Neo4j 5.13 中引入)可用于 USE 子句,解析给定元素 ID 所属的构成图。在下面的示例中,假设 DBMS 包含一个复合数据库构成图,其中包含元素 ID 4:c0a65d96-4993-4b0c-b036-e7ebd9174905:0。如果构成数据库不是 DBMS 中的标准数据库,则会抛出错误:.查询

USE graph.byElementId("4:c0a65d96-4993-4b0c-b036-e7ebd9174905:0")
MATCH (n) RETURN n