## 3.4 获取有关数据库和表的信息

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

如果您忘记了数据库或表的名称，或者给定表的结构是什么（例如，其列的名称）怎么办？MySQL 通过几个语句解决了这个问题，这些语句提供了有关它支持的数据库和表的信息。

你以前见过[`显示数据库`](show-databases.html)，其中列出了服务器管理的数据库。要找出当前选择的数据库，请使用[`数据库（）`](information-functions.html#function_database)功能：

```
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| menagerie  |
+------------+
```

如果您还没有选择任何数据库，结果是`空值`.

要找出默认数据库包含哪些表（例如，当您不确定表的名称时），请使用以下语句：

```
mysql> SHOW TABLES;
+---------------------+
| Tables_in_menagerie |
+---------------------+
| event               |
| pet                 |
+---------------------+
```

此语句生成的输出中的列名始终为`表_in_*`数据库名称`*`， 在哪里*`数据库名称`*是数据库的名称。看[第 13.7.7.39 节，“SHOW TABLES 语句”](show-tables.html)， 了解更多信息。

如果你想了解表的结构，[`描述`](describe.html)声明很有用；它显示有关每个表列的信息：

```
mysql> DESCRIBE pet;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name    | varchar(20) | YES  |     | NULL    |       |
| owner   | varchar(20) | YES  |     | NULL    |       |
| species | varchar(20) | YES  |     | NULL    |       |
| sex     | char(1)     | YES  |     | NULL    |       |
| birth   | date        | YES  |     | NULL    |       |
| death   | date        | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
```

`场地`表示列名，`类型`是列的数据类型，`空值`指示列是否可以包含`空值`价值观，`钥匙`指示列是否被索引，并且`默认`指定列的默认值。`额外的`显示有关列的特殊信息：如果列是使用`自动递增`选项，值为`自动递增`而不是空的。

`DESC`是一个简短的形式[`描述`](describe.html).看[第 13.8.1 节，“DESCRIBE 语句”](describe.html)， 了解更多信息。

您可以获得[`创建表`](create-table.html)使用创建现有表所必需的语句[`显示创建表`](show-create-table.html)陈述。看[第 13.7.7.10 节，“SHOW CREATE TABLE 语句”](show-create-table.html).

如果表上有索引，`显示索引 *`tbl_name`*`产生关于它们的信息。看[第 13.7.7.22 节，“显示索引语句”](show-index.html), 有关此声明的更多信息。
