### 13.1.24 DROP DATABASE 语句

[](<>)[](<>)[](<>)[](<>)[](<>)[](<>)

```
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
```

[`删除数据库`](drop-database.html)删除数据库中的所有表并删除数据库。是*非常*小心这个说法！使用[`删除数据库`](drop-database.html)，你需要[`降低`](privileges-provided.html#priv_drop)数据库的权限。[`删除模式`](drop-database.html)是同义词[`删除数据库`](drop-database.html).

重要的

当一个数据库被删除时，专门为该数据库授予的权限是*不是*自动下降。必须手动删除它们。看[第 13.7.1.6 节，“GRANT 声明”](grant.html).

`如果存在`用于防止在数据库不存在时发生错误。

如果删除默认数据库，则取消设置默认数据库（[`数据库（）`](information-functions.html#function_database)函数返回`空值`）。

如果你使用[`删除数据库`](drop-database.html)在符号链接的数据库上，链接和原始数据库都被删除。

[`删除数据库`](drop-database.html)返回已删除的表数。

这[`删除数据库`](drop-database.html)语句从给定的数据库目录中删除 MySQL 本身在正常操作期间可能创建的那些文件和目录。这包括具有以下列表中显示的扩展名的所有文件：

-   `.BAK`

-   `.DAT`

-   `.HSH`

-   `.MRG`

-   `.MYD`

-   `。我的我`

-   `.cfg`

-   `。D b`

-   `.ibd`

-   `.ndb`

    如果 MySQL 删除刚刚列出的文件或目录后，其他文件或目录仍保留在数据库目录中，则无法删除数据库目录。在这种情况下，您必须手动删除所有剩余的文件或目录并发出[`删除数据库`](drop-database.html)再次声明。

    删除数据库不会删除任何`暂时的`在该数据库中创建的表。`暂时的`当创建它们的会话结束时，表会自动删除。看[第 13.1.20.2 节，“CREATE TEMPORARY TABLE 语句”](create-temporary-table.html).

[](<>)

您还可以删除数据库[**mysql管理员**](mysqladmin.html).看[第 4.5.2 节，“mysqladmin - MySQL 服务器管理程序”](mysqladmin.html).
