> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8a08bda2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> DROP 语句文档

# DROP 语句

删除现有实体。如果指定了 `IF EXISTS` 子句，那么即使实体不存在，这些查询也不会返回错误。如果指定了 `SYNC` 修饰符，则会立即删除该实体。

<div id="drop-database">
  ## DROP DATABASE
</div>

先删除 `db` 数据库中的所有表，然后再删除 `db` 数据库本身。

语法：

```sql theme={null}
DROP DATABASE [IF EXISTS] db [ON CLUSTER cluster] [SYNC]
```

<div id="drop-table">
  ## DROP TABLE
</div>

删除一个或多个表。

<Tip>
  若要撤销删除表的操作，请参见 [UNDROP TABLE](/zh/reference/statements/undrop)
</Tip>

语法：

```sql theme={null}
DROP [TEMPORARY] TABLE [IF EXISTS] [IF EMPTY]  [db1.]name_1[, [db2.]name_2, ...] [ON CLUSTER cluster] [SYNC]
```

限制：

* 如果指定了 `IF EMPTY` 子句，服务器只会在接收到该查询的副本上检查该表是否为空。
* 一次删除多个表不是原子操作；也就是说，如果删除某个表失败，后续的表将不会被删除。

<div id="drop-dictionary">
  ## DROP DICTIONARY
</div>

删除字典。

语法：

```sql theme={null}
DROP DICTIONARY [IF EXISTS] [db.]name [SYNC]
```

<div id="drop-user">
  ## DROP USER
</div>

删除一个用户。

语法：

```sql theme={null}
DROP USER [IF EXISTS] name [,...] [ON CLUSTER cluster_name] [FROM access_storage_type]
```

<div id="drop-role">
  ## DROP ROLE
</div>

删除角色。已删除的角色会从所有已授予该角色的实体中撤销。

语法：

```sql theme={null}
DROP ROLE [IF EXISTS] name [,...] [ON CLUSTER cluster_name] [FROM access_storage_type]
```

<div id="drop-row-policy">
  ## DROP ROW POLICY
</div>

删除 ROW POLICY。删除后，系统会从所有已分配该策略的对象中撤销该策略。

语法：

```sql theme={null}
DROP [ROW] POLICY [IF EXISTS] name [,...] ON [database.]table [,...] [ON CLUSTER cluster_name] [FROM access_storage_type]
```

<div id="drop-masking-policy">
  ## DROP MASKING POLICY
</div>

删除数据脱敏策略。

语法：

```sql theme={null}
DROP MASKING POLICY [IF EXISTS] name ON [database.]table [ON CLUSTER cluster_name] [FROM access_storage_type]
```

<div id="drop-quota">
  ## DROP QUOTA
</div>

删除一个 QUOTA。删除后，系统会从所有已分配该 QUOTA 的实体中将其撤销。

语法：

```sql theme={null}
DROP QUOTA [IF EXISTS] name [,...] [ON CLUSTER cluster_name] [FROM access_storage_type]
```

<div id="drop-settings-profile">
  ## DROP SETTINGS PROFILE
</div>

删除一个 SETTINGS PROFILE。已删除的 SETTINGS PROFILE 会从所有已分配该 profile 的对象中撤销。

语法：

```sql theme={null}
DROP [SETTINGS] PROFILE [IF EXISTS] name [,...] [ON CLUSTER cluster_name] [FROM access_storage_type]
```

<div id="drop-view">
  ## DROP VIEW
</div>

删除视图。也可以使用 `DROP TABLE` 命令删除视图，但 `DROP VIEW` 会检查 `[db.]name` 是否是视图。

语法：

```sql theme={null}
DROP VIEW [IF EXISTS] [db.]name [ON CLUSTER cluster] [SYNC]
```

<div id="drop-function">
  ## DROP FUNCTION
</div>

删除通过 [CREATE FUNCTION](/zh/reference/statements/create/function) 创建的用户自定义函数。
系统函数无法删除。

**语法**

```sql theme={null}
DROP FUNCTION [IF EXISTS] function_name [on CLUSTER cluster]
```

**示例**

```sql theme={null}
CREATE FUNCTION linear_equation AS (x, k, b) -> k*x + b;
DROP FUNCTION linear_equation;
```

<div id="drop-named-collection">
  ## DROP NAMED COLLECTION
</div>

删除命名集合。

**语法**

```sql theme={null}
DROP NAMED COLLECTION [IF EXISTS] name [on CLUSTER cluster]
```

**示例**

```sql theme={null}
CREATE NAMED COLLECTION foobar AS a = '1', b = '2';
DROP NAMED COLLECTION foobar;
```
