数据库管理命令语法
几乎所有的管理命令都有变体。最常见的变体包括命令中可选的部分,或者可以具有多个值的部分。某些变体使用特殊字符来指示。详情请参阅读取管理命令语法。
本页总结了各种命令语法选项。在适用的情况下,还包括 Cypher 5 和 Cypher 25 的示例。
Cypher® 版本引入于 2025.06
自 Neo4j 2025.06 起,Cypher 语言与 Neo4j 服务器解耦,并遵循其自身的版本控制。目前有两种可用的 Cypher 版本:Cypher 5 和 Cypher 25。您可以通过以下方式指定 Cypher 版本:在 neo4j.conf 文件中明确设置 db.query.default_language 配置,为整个 DBMS 配置默认 Cypher 版本;在使用 CREATE DATABASE 或 ALTER DATABASE 时按每个数据库进行配置;或者在查询前添加 CYPHER 5 或 CYPHER 25 以覆盖默认设置。有关更多信息,请参阅配置 Cypher 默认版本和Cypher 手册 → 选择 Cypher 版本。
- Cypher 5
-
Cypher 5 是与为 Neo4j 2025.05 及更早版本编写的所有查询兼容的语言版本。然而,自 Neo4j 2025.06 起,它已被冻结,未来版本将仅获得性能增强和错误修复。
将默认语言设置为CYPHER 5可确保在该数据库上运行的所有查询都使用 Neo4j 2025.06 发布时存在的Cypher 5版本(除非您在查询前添加CYPHER 25,这将覆盖此默认设置)。2025.06 发布之后引入的任何更改都不会影响查询的语义。
Cypher 5 仍然是所有新创建数据库的默认版本,除非在 DBMS 级别明确设置了db.query.default_language=CYPHER_25,或者使用CREATE DATABASE或ALTER DATABASE进行了覆盖,或者通过在查询前添加CYPHER 25进行覆盖。 - Cypher 25
-
Cypher 25 构建于 Cypher 5 之上,包含新的和改进的功能,以及一些移除项。Neo4j 2025.06 或更高版本中引入的任何新 Cypher 功能仅添加到 Cypher 25 中。将默认语言设置为
CYPHER 25可确保在该数据库上运行的所有查询都使用该数据库当前运行的Cypher 25版本(除非您在查询前添加CYPHER 5,这将覆盖此默认设置)。例如,具有默认语言Cypher 25的 Neo4j 2025.10 数据库将使用 Neo4j 2025.10 中存在的Cypher 25,包括在 Neo4j 2025.06、2025.07、2025.08 和 2025.09 中引入的任何更改。从 Neo4j 2026.02 开始,分发的 neo4j.conf 明确设置了
db.query.default_language=CYPHER_25。因此,使用所提供配置文件的部署,其新创建的数据库默认使用 Cypher 25。Cypher 版本仍然可以在CREATE DATABASE命令中明确指定,也可以随时使用ALTER DATABASE进行更改。如果您想将 Cypher 5 作为新数据库的默认版本,可以删除或注释掉该配置条目,这等同于设置
db.query.default_language=CYPHER_5。现有数据库保留其现有的默认语言。
读取管理命令语法
| 字符 | 含义 | 示例 |
|---|---|---|
|
用于指示命令的替代部分(即 |
如果语法需要指定名称或 |
|
用于对命令的部分进行分组。通常与 |
为了在语法摘要中使用 |
|
用于指示命令的可选部分。它还将多个替代选项组合在一起,当可以是其中任一选项或均不选时使用。 |
如果语法中的关键字可以是单数或复数,可以使用 |
|
重复模式。与此紧邻的前一个命令部分相关,表示该部分可重复。 |
以逗号分隔的名称列表应为 |
|
当特殊字符本身作为语法的一部分时,用 |
要在语法中包含 |
上表中的特殊字符是语法摘要中唯一需要使用 " 进行转义的字符。
下面是一个使用所有特殊字符的示例。它授予 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
数据库管理命令语法
数据库管理命令用于管理标准数据库或复合数据库。
显示数据库
| 命令 | 语法 |
|---|---|
|
|
创建数据库
| 命令 | 语法 |
|---|---|
|
|
|
|
| 命令 | 语法 |
|---|---|
|
|
|
|
创建复合数据库
| 命令 | 语法 |
|---|---|
|
|
|
|
| 命令 | 语法 |
|---|---|
|
|
|
|
创建分片属性数据库引入于 2025.12
| 命令 | 语法 |
|---|---|
|
|
创建分片属性数据库时,会创建以下内容
-
一个虚拟分片属性数据库
<name>。 -
一个名为
<name>-g000的单一图分片。 -
多个名为
<name>-p<index>的属性分片,其中<index>的范围从000到999。SET PROPERTY SHARDS中的 count 属性指定了属性分片的数量。
|
分片属性数据库的
|
修改数据库
| 命令 | 语法 |
|---|---|
|
|
|
可以针对不同的选项键存在多个 从 2025.06 开始, |
修改复合数据库引入于 2025.06
| 命令 | 语法 |
|---|---|
|
|
修改分片属性数据库引入于 2025.12
| 命令 | 语法 |
|---|---|
|
|
|
|
|
|
数据库别名管理命令语法
数据库别名管理命令用于管理本地或远程数据库别名。
显示别名
| 命令 | 语法 |
|---|---|
|
列出本地和远程数据库别名,并可选择按别名名称过滤。 |
创建本地别名
| 命令 | 语法 |
|---|---|
|
|
创建远程别名
| 命令 | 语法 |
|---|---|
|
|
|
|
| 命令 | 语法 |
|---|---|
|
|
|
|
修改本地别名
| 命令 | 语法 |
|---|---|
|
|