Skip to content

Commit

Permalink
whitespace (#1251)
Browse files Browse the repository at this point in the history
  • Loading branch information
abby-cyber authored Nov 24, 2021
1 parent 53ba41a commit a5677f6
Show file tree
Hide file tree
Showing 29 changed files with 228 additions and 234 deletions.
46 changes: 23 additions & 23 deletions docs-2.0/3.ngql-guide/10.tag-statements/1.create-tag.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
# CREATE TAG

`CREATE TAG`语句可以通过指定名称创建一个Tag
`CREATE TAG`语句可以通过指定名称创建一个 Tag

## OpenCypher兼容性
## OpenCypher 兼容性

nGQL中的Tag和openCypher中的Label相似,但又有所不同,例如它们的创建方式。
nGQL 中的 Tag 和 openCypher 中的 Label 相似,但又有所不同,例如它们的创建方式。

* openCypher中的Label需要在`CREATE`语句中与点一起创建。
* nGQL中的Tag需要使用`CREATE TAG`语句独立创建。Tag更像是MySQL中的表
* openCypher 中的 Label 需要在`CREATE`语句中与点一起创建。
* nGQL 中的 Tag 需要使用`CREATE TAG`语句独立创建。Tag 更像是 MySQL 中的表

## 前提条件

执行`CREATE TAG`语句需要当前登录的用户拥有指定图空间的[创建Tag权限](../../7.data-security/1.authentication/3.role-list.md),否则会报错。
执行`CREATE TAG`语句需要当前登录的用户拥有指定图空间的 [创建 Tag 权限](../../7.data-security/1.authentication/3.role-list.md),否则会报错。

## 语法

创建Tag前,需要先用`USE`语句指定工作空间。
创建 Tag 前,需要先用`USE`语句指定工作空间。

```ngql
CREATE TAG [IF NOT EXISTS] <tag_name>
Expand All @@ -30,41 +30,41 @@ CREATE TAG [IF NOT EXISTS] <tag_name>

|参数|说明|
|:---|:---|
|`IF NOT EXISTS`|检测待创建的Tag是否存在,只有不存在时,才会创建Tag。仅检测Tag的名称,不会检测具体属性。|
|`<tag_name>`|每个图空间内的Tag必须是唯一的。Tag名称设置后无法修改。Tag名称由大小写英文字母、数字或下划线组成,区分大写小,且不可使用[关键字和保留字](../../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md)|
|`<prop_name>`|属性名称。每个Tag中的属性名称必须唯一。属性的命名规则与Tag相同|
|`<data_type>`|属性的数据类型,目前支持[数值](../3.data-types/1.numeric.md)[布尔](../3.data-types/2.boolean.md)[字符串](../3.data-types/3.string.md)以及[日期与时间](../3.data-types/4.date-and-time.md)|
|`IF NOT EXISTS`|检测待创建的 Tag 是否存在,只有不存在时,才会创建 Tag。仅检测 Tag 的名称,不会检测具体属性。|
|`<tag_name>`|每个图空间内的 Tag 必须是唯一的。Tag 名称设置后无法修改。Tag 名称由大小写英文字母、数字或下划线组成,区分大写小,且不可使用 [关键字和保留字](../../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md)|
|`<prop_name>`|属性名称。每个 Tag 中的属性名称必须唯一。属性的命名规则与 Tag 相同|
|`<data_type>`|属性的数据类型,目前支持 [数值](../3.data-types/1.numeric.md)[布尔](../3.data-types/2.boolean.md)[字符串](../3.data-types/3.string.md) 以及 [日期与时间](../3.data-types/4.date-and-time.md)|
|`NULL \| NOT NULL`|指定属性值是否支持为`NULL`。默认值为`NULL`|
|`DEFAULT`|指定属性的默认值。默认值可以是一个文字值或Nebula Graph支持的表达式。如果插入点时没有指定某个属性的值,则使用默认值。|
|`COMMENT`|对单个属性或Tag的描述。最大为256字节。默认无描述。|
|`DEFAULT`|指定属性的默认值。默认值可以是一个文字值或 Nebula Graph 支持的表达式。如果插入点时没有指定某个属性的值,则使用默认值。|
|`COMMENT`|对单个属性或 Tag 的描述。最大为 256 字节。默认无描述。|
|`TTL_DURATION`|指定属性存活时间。超时的属性将会过期。属性值和时间戳差值之和如果小于当前时间戳,属性就会过期。默认值为`0`,表示属性永不过期。|
|`TTL_COL`|指定要设置存活时间的属性。属性的数据类型必须是`int`或者`timestamp`一个Tag只能指定一个字段为`TTL_COL`更多TTL的信息请参见[TTL](../8.clauses-and-options/ttl-options.md)|
|`TTL_COL`|指定要设置存活时间的属性。属性的数据类型必须是`int`或者`timestamp`一个 Tag 只能指定一个字段为`TTL_COL`更多 TTL 的信息请参见 [TTL](../8.clauses-and-options/ttl-options.md)|

## 示例

```ngql
nebula> CREATE TAG IF NOT EXISTS player(name string, age int);
# 创建没有属性的Tag
# 创建没有属性的 Tag
nebula> CREATE TAG IF NOT EXISTS no_property(); 
# 创建包含默认值的Tag
# 创建包含默认值的 Tag
nebula> CREATE TAG IF NOT EXISTS player_with_default(name string, age int DEFAULT 20);
# 对字段create_time设置TTL为100秒
# 对字段 create_time 设置 TTL 为 100 秒
nebula> CREATE TAG IF NOT EXISTS woman(name string, age int, \
married bool, salary double, create_time timestamp) \
TTL_DURATION = 100, TTL_COL = "create_time";
```

## 创建Tag说明
## 创建 Tag 说明

尝试使用新创建的Tag可能会失败,因为创建是异步实现的。
尝试使用新创建的 Tag 可能会失败,因为创建是异步实现的。

Nebula Graph将在下一个心跳周期内完成Tag的创建,为了确保创建成功,可以使用如下方法之一:
Nebula Graph 将在下一个心跳周期内完成 Tag 的创建,为了确保创建成功,可以使用如下方法之一:

-[`SHOW TAGS`](4.show-tags.md)语句的结果中查找新的Tag,如果找不到,请等待几秒重试。
- [`SHOW TAGS`](4.show-tags.md) 语句的结果中查找新的 Tag,如果找不到,请等待几秒重试。

- 等待两个心跳周期,例如20秒
- 等待两个心跳周期,例如 20 秒

如果需要修改心跳间隔,请为[所有配置文件](../../5.configurations-and-logs/1.configurations/1.configurations.md)修改参数`heartbeat_interval_secs`
如果需要修改心跳间隔,请为 [所有配置文件](../../5.configurations-and-logs/1.configurations/1.configurations.md) 修改参数`heartbeat_interval_secs`
18 changes: 9 additions & 9 deletions docs-2.0/3.ngql-guide/10.tag-statements/2.drop-tag.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,30 @@
# DROP TAG

`DROP TAG`语句可以删除当前工作空间内所有点上的指定Tag
`DROP TAG`语句可以删除当前工作空间内所有点上的指定 Tag

点可以有一个或多个Tag
点可以有一个或多个 Tag

- 如果某个点只有一个Tag,删除这个Tag后,用户就**无法访问**这个点,下次Compaction操作时会删除该点,但点上的边仍然存在。
- 如果某个点只有一个 Tag,删除这个 Tag 后,用户就**无法访问**这个点,下次 Compaction 操作时会删除该点,但点上的边仍然存在。

- 如果某个点有多个Tag,删除其中一个Tag,仍然可以访问这个点,但是**无法访问**已删除Tag所定义的所有属性
- 如果某个点有多个 Tag,删除其中一个 Tag,仍然可以访问这个点,但是**无法访问**已删除 Tag 所定义的所有属性

删除Tag操作仅删除Schema数据,硬盘上的文件或目录不会立刻删除,而是在下一次Compaction操作时删除
删除 Tag 操作仅删除 Schema 数据,硬盘上的文件或目录不会立刻删除,而是在下一次 Compaction 操作时删除

## 前提条件

- 登录的用户必须拥有对应权限才能执行`DROP TAG`语句。详情请参见[内置角色权限](../../7.data-security/1.authentication/3.role-list.md)
- 登录的用户必须拥有对应权限才能执行`DROP TAG`语句。详情请参见 [内置角色权限](../../7.data-security/1.authentication/3.role-list.md)

- 确保Tag不包含任何索引,否则`DROP TAG`时会报冲突错误`[ERROR (-8)]: Conflict!`。删除索引请参见[drop index](../14.native-index-statements/6.drop-native-index.md)
- 确保 Tag 不包含任何索引,否则`DROP TAG`时会报冲突错误`[ERROR (-8)]: Conflict!`。删除索引请参见 [drop index](../14.native-index-statements/6.drop-native-index.md)

## 语法

```ngql
DROP TAG [IF EXISTS] <tag_name>;
```

- `IF EXISTS`检测待删除的Tag是否存在,只有存在时,才会删除Tag
- `IF EXISTS`检测待删除的 Tag 是否存在,只有存在时,才会删除 Tag

- `tag_name`指定要删除的Tag名称。一次只能删除一个Tag
- `tag_name`指定要删除的 Tag 名称。一次只能删除一个 Tag

## 示例

Expand Down
20 changes: 10 additions & 10 deletions docs-2.0/3.ngql-guide/10.tag-statements/3.alter-tag.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# ALTER TAG

`ALTER TAG`语句可以修改Tag的结构。例如增删属性、修改数据类型,也可以为属性设置、修改[TTL](../8.clauses-and-options/ttl-options.md)(Time-To-Live)。
`ALTER TAG`语句可以修改 Tag 的结构。例如增删属性、修改数据类型,也可以为属性设置、修改 [TTL](../8.clauses-and-options/ttl-options.md)(Time-To-Live)。

## 前提条件

- 登录的用户必须拥有对应权限才能执行`ALTER TAG`语句。详情请参见[内置角色权限](../../7.data-security/1.authentication/3.role-list.md)
- 登录的用户必须拥有对应权限才能执行`ALTER TAG`语句。详情请参见 [内置角色权限](../../7.data-security/1.authentication/3.role-list.md)

- 确保要修改的属性不包含索引,否则`ALTER TAG`时会报冲突错误`[ERROR (-8)]: Conflict!`。删除索引请参见[drop index](../14.native-index-statements/6.drop-native-index.md)
- 确保要修改的属性不包含索引,否则`ALTER TAG`时会报冲突错误`[ERROR (-8)]: Conflict!`。删除索引请参见 [drop index](../14.native-index-statements/6.drop-native-index.md)

## 语法

Expand All @@ -25,7 +25,7 @@ ttl_definition:
TTL_DURATION = ttl_duration, TTL_COL = prop_name
```

- `tag_name`指定要修改的Tag名称。一次只能修改一个Tag。请确保要修改的Tag在当前工作空间中存在,否则会报错。
- `tag_name`指定要修改的 Tag 名称。一次只能修改一个 Tag。请确保要修改的 Tag 在当前工作空间中存在,否则会报错。

- 可以在一个`ALTER TAG`语句中使用多个`ADD``DROP``CHANGE`子句,子句之间用英文逗号(,)分隔。

Expand All @@ -38,14 +38,14 @@ nebula> ALTER TAG t1 TTL_DURATION = 2, TTL_COL = "p2";
nebula> ALTER TAG t1 COMMENT = 'test1';
```

## 修改Tag说明
## 修改 Tag 说明

尝试使用刚修改的Tag可能会失败,因为修改是异步实现的。
尝试使用刚修改的 Tag 可能会失败,因为修改是异步实现的。

Nebula Graph将在下一个心跳周期内完成Tag的修改,为了确保修改成功,可以使用如下方法之一:
Nebula Graph 将在下一个心跳周期内完成 Tag 的修改,为了确保修改成功,可以使用如下方法之一:

-[`DESCRIBE TAG`](5.describe-tag.md)语句的结果中查看Tag信息,确认修改成功。如果没有修改成功,请等待几秒重试。
- [`DESCRIBE TAG`](5.describe-tag.md) 语句的结果中查看 Tag 信息,确认修改成功。如果没有修改成功,请等待几秒重试。

- 等待两个心跳周期,例如20秒
- 等待两个心跳周期,例如 20 秒

如果需要修改心跳间隔,请为[所有配置文件](../../5.configurations-and-logs/1.configurations/1.configurations.md)修改参数`heartbeat_interval_secs`
如果需要修改心跳间隔,请为 [所有配置文件](../../5.configurations-and-logs/1.configurations/1.configurations.md) 修改参数`heartbeat_interval_secs`
4 changes: 2 additions & 2 deletions docs-2.0/3.ngql-guide/10.tag-statements/4.show-tags.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# SHOW TAGS

`SHOW TAGS`语句显示当前图空间内的所有Tag名称
`SHOW TAGS`语句显示当前图空间内的所有 Tag 名称

执行`SHOW TAGS`语句不需要任何权限,但是返回结果由登录的用户[权限](../../7.data-security/1.authentication/3.role-list.md)决定。
执行`SHOW TAGS`语句不需要任何权限,但是返回结果由登录的用户 [权限](../../7.data-security/1.authentication/3.role-list.md) 决定。

## 语法

Expand Down
4 changes: 2 additions & 2 deletions docs-2.0/3.ngql-guide/10.tag-statements/5.describe-tag.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# DESCRIBE TAG

`DESCRIBE TAG`显示指定Tag的详细信息,例如字段名称、数据类型等。
`DESCRIBE TAG`显示指定 Tag 的详细信息,例如字段名称、数据类型等。

## 前提条件

登录的用户必须拥有对应权限才能执行`DESCRIBE TAG`语句。详情请参见[内置角色权限](../../7.data-security/1.authentication/3.role-list.md)
登录的用户必须拥有对应权限才能执行`DESCRIBE TAG`语句。详情请参见 [内置角色权限](../../7.data-security/1.authentication/3.role-list.md)

## 语法

Expand Down
16 changes: 7 additions & 9 deletions docs-2.0/3.ngql-guide/10.tag-statements/6.delete-tag.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
# DELETE TAG

`DELETE TAG`语句可以删除指定点上的指定Tag
`DELETE TAG`语句可以删除指定点上的指定 Tag

点可以有一个或多个Tag
点可以有一个或多个 Tag

- 如果某个点只有一个Tag,删除这个点上的Tag后,用户就**无法访问**这个点,下次Compaction操作时会删除该点,但点上的边仍然存在。
- 如果某个点只有一个 Tag,删除这个点上的 Tag 后,用户就**无法访问**这个点,下次 Compaction 操作时会删除该点,但点上的边仍然存在。

- 如果某个点有多个Tag,删除其中一个Tag,仍然可以访问这个点,但是**无法访问**这个点上已删除Tag所定义的所有属性
- 如果某个点有多个 Tag,删除其中一个 Tag,仍然可以访问这个点,但是**无法访问**这个点上已删除 Tag 所定义的所有属性

## 前提条件

登录的用户必须拥有对应权限才能执行`DELETE TAG`语句。详情请参见[内置角色权限](../../7.data-security/1.authentication/3.role-list.md)
登录的用户必须拥有对应权限才能执行`DELETE TAG`语句。详情请参见 [内置角色权限](../../7.data-security/1.authentication/3.role-list.md)

## 语法

```ngql
DELETE TAG <tag_name_list> FROM <VID>;
```

- `tag_name_list`指定Tag名称。多个Tag用英文逗号(,)分隔,也可以用`*`表示所有Tag
- `tag_name_list`指定 Tag 名称。多个 Tag 用英文逗号(,)分隔,也可以用`*`表示所有 Tag

- `VID`指定要删除Tag的点ID
- `VID`指定要删除 Tag 的点 ID

## 示例

Expand Down Expand Up @@ -48,10 +48,8 @@ nebula> FETCH PROP ON * "test";
+-----------+
| vertices_ |
+-----------+
+-----------+
```


!!! Compatibility

* 在 openCypher 中,可以使用 `REMOVE v:LABEL` 语句来移除该点 `v` 的 `LABEL`。
Expand Down
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
# 增加和删除标签

在openCypher中,有增加标签(`SET label`)和移除标签(`REMOVE label`)的功能,可以用于加速查询或者标记过程。
在 openCypher 中,有增加标签(`SET label`)和移除标签(`REMOVE label`)的功能,可以用于加速查询或者标记过程。

在Nebula Graph中,可以通过Tag变相实现相同操作,创建Tag并将Tag插入到已有的点上,就可以根据Tag名称快速查找点,也可以通过`DELETE TAG`删除某些点上不再需要的Tag
在 Nebula Graph 中,可以通过 Tag 变相实现相同操作,创建 Tag 并将 Tag 插入到已有的点上,就可以根据 Tag 名称快速查找点,也可以通过`DELETE TAG`删除某些点上不再需要的 Tag

!!! caution

请确保点上已经有另一个Tag,否则删除点上最后一个Tag时,会导致点也被删除。
请确保点上已经有另一个 Tag,否则删除点上最后一个 Tag 时,会导致点也被删除。

## 示例

例如在basketballplayer数据集中,部分篮球运动员同时也是球队股东,可以为股东Tag`shareholder`创建索引,方便快速查找。如果不再是股东,可以通过`DELETE TAG`语句删除相应运动员的股东Tag
例如在 basketballplayer 数据集中,部分篮球运动员同时也是球队股东,可以为股东 Tag`shareholder`创建索引,方便快速查找。如果不再是股东,可以通过`DELETE TAG`语句删除相应运动员的股东 Tag

```ngql
//创建股东Tag和索引
//创建股东 Tag 和索引
nebula> CREATE TAG IF NOT EXISTS shareholder();
nebula> CREATE TAG INDEX IF NOT EXISTS shareholder_tag on shareholder();
//为点添加Tag
//为点添加 Tag
nebula> INSERT VERTEX shareholder() VALUES "player100":();
nebula> INSERT VERTEX shareholder() VALUES "player101":();
Expand All @@ -37,7 +37,7 @@ nebula> LOOKUP ON shareholder;
| "player101" |
+-------------+
//如果player100不再是股东
//如果 player100 不再是股东
nebula> DELETE TAG shareholder FROM "player100";
nebula> LOOKUP ON shareholder;
+-------------+
Expand Down
Loading

0 comments on commit a5677f6

Please sign in to comment.