管理命令的 Cypher 语法

几乎所有管理命令都有不同的变体。最常见的是命令中可选或可以具有多个值的部分。

请参见下文,其中总结了用于描述所有命令版本的语法。这些摘要使用一些特殊字符来指示此类变体。

阅读管理命令语法

表 1. 语法摘要中的特殊字符
字符 含义 示例

|

用于指示命令的备选部分(即 )。需要是分组的一部分。

如果语法需要指定名称或 *,则可以使用 * | name 来指示。

{}

用于对命令的部分进行分组。通常与 | 一起使用。

为了在语法摘要中使用 ,它需要在一个组中:{* | name}

[]

用于指示命令的可选部分。当可以是其中任何一个备选方案或没有时,它还会将备选方案组合在一起。

如果语法中的关键字可以是单数或复数,我们可以用 GRAPH[S] 指示 S 是可选的。

...

重复模式。与紧接其前的命令部分相关,该部分将被重复。

逗号分隔的名称列表将是 name[, ...]

"

当特殊字符本身是语法的一部分时,我们用 " 将其括起来以指示这一点。

要在语法中包含 {,请使用 "{" { * | name } "}"。在这种情况下,您将获得 { * }{ name }

上表中的特殊字符是唯一需要在语法摘要中使用 " 进行转义的字符。

以下是一个使用所有特殊字符的示例。它授予 READ 权限

GRANT READ
  "{" { * | property[, ...] } "}"
  ON {HOME GRAPH | GRAPH[S] { * | name[, ...] }}
    [ ELEMENT[S] { * | label-or-rel-type[, ...] }
    | NODE[S] { * | label[, ...] }
    | RELATIONSHIP[S] { * | rel-type[, ...] }]
  TO role[, ...]

请注意,此命令在语法中包含 {},并且它们之间可以是属性分组或字符 *。它还具有多个可选部分,包括命令的实体部分,该部分是图名称后面的分组。

但是,在为节点属性创建约束时,无需转义任何字符。这是因为()不是特殊字符,而[]表示约束名称和IF NOT EXISTS部分是可选的,因此不是命令的一部分。

CREATE CONSTRAINT [constraint_name] [IF NOT EXISTS]
FOR (n:LabelName)
REQUIRE n.propertyName IS NOT NULL

数据库管理命令语法

下表涵盖了标准数据库和复合数据库。

命令 语法

SHOW DATABASE

SHOW { DATABASE[S] name | DATABASE[S] | DEFAULT DATABASE | HOME DATABASE }
[WHERE expression]
SHOW { DATABASE[S] name | DATABASE[S] | DEFAULT DATABASE | HOME DATABASE }
YIELD { * | field[, ...] } [ORDER BY field[, ...]] [SKIP n] [LIMIT n]
[WHERE expression]
[RETURN field[, ...] [ORDER BY field[, ...]] [SKIP n] [LIMIT n]]

CREATE DATABASE

CREATE DATABASE name [IF NOT EXISTS]
[TOPOLOGY n PRIMAR{Y|IES} [m SECONDAR{Y|IES}]]
[OPTIONS "{" option: value[, ...] "}"]
[WAIT [n [SEC[OND[S]]]]|NOWAIT]
CREATE OR REPLACE DATABASE name
[TOPOLOGY n PRIMAR{Y|IES} [m SECONDAR{Y|IES}]]
[OPTIONS "{" option: value[, ...] "}"]
[WAIT [n [SEC[OND[S]]]]|NOWAIT]

CREATE COMPOSITE DATABASE

CREATE COMPOSITE DATABASE name [IF NOT EXISTS]
[OPTIONS "{" "}"]
[WAIT [n [SEC[OND[S]]]]|NOWAIT]
CREATE OR REPLACE COMPOSITE DATABASE name
[OPTIONS "{" "}"]
[WAIT [n [SEC[OND[S]]]]|NOWAIT]

ALTER DATABASE

ALTER DATABASE name [IF EXISTS]
{
SET ACCESS {READ ONLY | READ WRITE} |
SET TOPOLOGY n PRIMAR{Y|IES} [m SECONDAR{Y|IES}] |
SET OPTION option value
}
[WAIT [n [SEC[OND[S]]]]|NOWAIT]
ALTER DATABASE name [IF EXISTS]
REMOVE OPTION option
[WAIT [n [SEC[OND[S]]]]|NOWAIT]

可以为不同的选项键设置多个SET OPTIONREMOVE OPTION子句。

STOP DATABASE

STOP DATABASE name [WAIT [n [SEC[OND[S]]]]|NOWAIT]

START DATABASE

START DATABASE name [WAIT [n [SEC[OND[S]]]]|NOWAIT]

DROP DATABASE

DROP [COMPOSITE] DATABASE name [IF EXISTS] [RESTRICT | CASCADE ALIAS[ES]] [{DUMP|DESTROY} [DATA]] [WAIT [n [SEC[OND[S]]]]|NOWAIT]

数据库别名管理命令语法

命令 语法

Show Database Alias

SHOW ALIAS[ES] [name] FOR DATABASE[S]
[WHERE expression]
SHOW ALIAS[ES] [name] FOR DATABASE[S]
YIELD { * | field[, ...] } [ORDER BY field[, ...]] [SKIP n] [LIMIT n]
[WHERE expression]
[RETURN field[, ...] [ORDER BY field[, ...]] [SKIP n] [LIMIT n]]

列出本地和远程数据库别名,可以选择根据别名名称进行过滤。

Create Local Alias

CREATE ALIAS name [IF NOT EXISTS] FOR DATABASE targetName
[PROPERTIES "{" key: value[, ...] "}"]
CREATE OR REPLACE ALIAS name FOR DATABASE targetName
[PROPERTIES "{" key: value[, ...] "}"]

Create Remote Alias

CREATE ALIAS name [IF NOT EXISTS] FOR DATABASE targetName
AT 'url' USER username PASSWORD 'password'
[DRIVER "{" setting: value[, ...] "}"]
[PROPERTIES "{" key: value[, ...] "}"]
CREATE OR REPLACE ALIAS name FOR DATABASE targetName
AT 'url' USER username PASSWORD 'password'
[DRIVER "{" setting: value[, ...] "}"]
[PROPERTIES "{" key: value[, ...] "}"]

Alter Local Alias

ALTER ALIAS name [IF EXISTS] SET DATABASE
[TARGET targetName]
[PROPERTIES "{" key: value[, ...] "}"]

Alter Remote Alias

ALTER ALIAS name [IF EXISTS] SET DATABASE
[TARGET targetName AT 'url']
[USER username]
[PASSWORD 'password']
[DRIVER "{" setting: value[, ...] "}"]
[PROPERTIES "{" key: value[, ...] "}"]

Drop Alias

DROP ALIAS name [IF EXISTS] FOR DATABASE

删除本地或远程数据库别名。