📜  MySQL DESCRIBE表

📅  最后修改于: 2020-11-17 02:17:54             🧑  作者: Mango

MySQL DESCRIBE表

DESCRIBE表示详细显示信息。由于我们在MySQL中有表,因此我们将使用DESCRIBE命令来显示表的结构,例如列名,列名约束等。DESC命令是DESCRIBE命令的简写形式。 DESCRIBE和DESC命令都是等效的并且区分大小写。

句法

以下是显示表结构的语法:

{DESCRIBE | DESC} table_name;

我们可以使用以下步骤显示表的所有列:

步骤1:登录到MySQL数据库服务器。

步骤2:切换到特定的数据库。

步骤3:执行DESCRIBE语句。

让我们借助一个示例来理解它,该示例解释了如何在所选数据库中显示表的列。

登录到MySQL数据库

第一步是使用用户名和密码登录数据库服务器。我们应该看到如下图所示的输出:

>mysql -u root -p
Enter password: **********
mysql>

切换到特定的数据库

下一步是使用以下查询打开要从中显示表信息的特定数据库。执行查询后,我们应该看到以下输出:

mysql> USE mysqltestdb;

执行DESCRIBE语句

这是显示表信息的最后一步。在执行DESCRIBE语句之前,我们可以选择使用SHOW TABLES语句显示存储在所选数据库中的所有表:

mysql> SHOW TABLES;

例如,如果我们要显示客户表的结构,请执行以下语句。执行成功后,将给出如下图所示的输出:

mysql> DESCRIBE customer;

我们还可以使用DESC语句进行练习,这是DESCRIBE命令的缩写。请参见以下输出:

如何在MySQL Workbench中显示表信息?

要在MySQL Workbench中显示表的列信息,我们首先需要启动Workbench工具并使用用户名和密码登录到MySQL数据库服务器。我们将得到以下屏幕:

现在执行以下步骤以显示表信息:

1.转到导航选项卡,然后单击架构菜单。在这里,我们可以看到所有先前创建的数据库。在“模式”菜单下选择任何数据库,例如mysqltestdb。它将弹出可以在下图中显示的多个选项。

2.接下来,单击“表”,显示存储在mysqltestdb数据库中的所有表。选择要显示其列信息的表。然后,在该表上单击鼠标小时,它将显示三个图标。见下图:

现在,单击红色矩形框中显示的图标(i)。它将显示以下图像:

最后,单击“列”菜单以显示表结构。

MySQL SHOW COLUMNS命令

MySQL还允许SHOW COLUMNS命令显示表结构。这是获取表的列信息的一种更灵活的方法。

句法:

以下是SHOW COLUMNS命令的语法:

mysql> SHOW COLUMNS FROM table_name;

例如,如果执行以下查询,则将获取特定数据库中表的所有列信息:

mysql> SHOW COLUMNS FROM customer;

如果要显示来自另一个数据库的表的列信息或在当前数据库中不可用,则可以使用以下查询:

mysql> SHOW COLUMNS FROM database_name.table_name;

OR

mysql> SHOW COLUMNS FROM table_name IN database_name;

在下图中,我们可以看到我们已经使用了mysqltestdb数据库。但是我们已经显示了另一个数据库中表的列信息,而没有切换到当前数据库。

如果要显示更多的列信息,则需要在SHOW TABLES语句中添加FULL关键字,如下所示:

mysql> SHOW FULL COLUMNS FROM table_name;

例如,下面的SQL查询列出了mystudentdb数据库中student_info表的所有列:

mysql> SHOW FULL COLUMNS FROM student_info;

执行后,我们可以看到此命令将排序规则,特权,默认值和注释列添加到结果集中。

MySQL的解释

EXPLAIN关键字是DESCRIBE语句的同义词,该语句用于获取有关MySQL如何执行查询的信息。它可以与INSERT,SELECT,DELETE,UPDATE和REPLACE查询一起使用。从MySQL 8.0.19和更高版本开始,它还可以使用TABLE语句。当我们在查询中使用此关键字时,它将处理该语句并提供有关如何联接表,表的顺序,估计的分区和行的信息。

如果要显示SELECT语句的执行计划,可以使用以下查询:

mysql> EXPLAIN SELECT * FROM customer;

输出:

该查询产生以下信息: