Mysql 简明教程

MySQL - DESCRIBE Tables

描述 MySQL 表是指检索其定义或结构。当我们描述一个表时,它基本上包括现有的字段、它们的数据类型和对它们定义的任何约束。

我们可以使用以下 SQL 语句获取有关表结构的信息 −

  1. DESCRIBE Statement

  2. DESC Statement

  3. SHOW COLUMNS Statement

  4. EXPLAIN Statement

所有这些语句都用于相同目的。让我们在这个教程中逐一详细了解它们。

DESCRIBE Statement

MySQL DESCRIBE 语句用于检索与表相关的的信息,其中包括字段名称、字段数据类型和约束(如果存在)。该语句是 SHOW columns 语句的简写(它们都从表中检索相同的信息)。

除了检索表的定义外,此语句还可用于获取表中特定字段的信息。

Syntax

以下是 MySQL DESCRIBE 语句的语法 −

DESCRIBE table_name [col_name | wild];

Example

在以下示例中,我们使用 CREATE TABLE 语句创建一个名为 CUSTOMERS 的表 −

CREATE TABLE CUSTOMERS (
   ID INT AUTO_INCREMENT,
   NAME VARCHAR(20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   SALARY DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

现在,执行以下查询以获取有关 CUSTOMERS 表的列的信息 −

DESCRIBE CUSTOMERS;

Output

以下是 CUSTOMERS 表的列信息 −

Describing a specific column

默认情况下,DESCRIBE 语句提供指定表中所有列的信息。但您还可通过指定该列的名称来检索表中特定列的信息。

例如,以下查询显示了我们在前一个示例中创建的 CUSTOMERS 表的 NAME 列的信息。

DESCRIBE CUSTOMERS NAME;

Output

以下是对 CUSTOMERS 表的 NAME 列的描述 −

DESC Statement

我们还可使用 MySQL DESC 语句来获取表信息,而不是使用 DESCRIBE。它们给出相同的结果,因此 DESC 只是 DESCRIBE 语句的快捷方式。

Syntax

以下为 MySQL DESC 语句的语法 −

DESC table_name [col_name | wild];

Example

在此示例中,我们正在尝试使用 DESC 语句获取 CUSTOMERS 表的信息。

DESC CUSTOMERS;

以下是 CUSTOMERS 表的列信息 −

Describing a specific column

我们还可以获取给定表中特定列的信息,类似于使用 DESCRIBE。使用 DESC,而不是 DESCRIBE。

例如,以下查询显示 CUSTOMERS 表的 NAME 列的信息。

DESC CUSTOMERS NAME;

Output

以下是对 CUSTOMERS 表的 NAME 列的描述 −

SHOW COLUMNS Statement

MySQL SHOW COLUMNS 语句用于显示表中所有列的信息。DESCRIBE 语句是此语句的快捷方式。

Note: 此语句不会显示特定字段的信息。

Syntax

以下为 SHOW COLUMNS 语句的语法 −

SHOW COLUMNS FROM table_name;

Example

在此,我们使用 SHOW COLUMNS 语句检索相同 CUSTOMERS 的列信息。

SHOW COLUMNS FROM CUSTOMERS;

以下是 CUSTOMERS 表的列信息 −

EXPLAIN Statement

MySQL EXPLAIN 语句是 DESCRIBE 语句的同义词,它检索表结构的信息,如列名、列数据类型和约束(如果有)。

Syntax

以下为 SHOW COLUMNS 语句的语法 −

EXPLAIN table_name;

Example

在以下查询中,我们使用 EXPLAIN 语句检索 CUSTOMERS 表的列信息。

EXPLAIN CUSTOMERS;

以下是 CUSTOMERS 表的列信息 −

Describe Tables in Different Formats

可以使用 explain_type 选项以各种格式检索信息。此选项的值可以是 TRADITIONAL、JSON 和 TREE。

Syntax

以下是描述不同格式表的语法 −

{EXPLAIN | DESCRIBE | DESC}
explain_type: { FORMAT = format_name } select_statement

Example

在以下示例中,我们将 CUSTOMERS 表格式描述为 TRADITIONAL

EXPLAIN FORMAT = TRADITIONAL SELECT * FROM CUSTOMERS;

Output

执行上述查询将产生以下输出:

Example

在此,我们将 CUSTOMERS 表格式描述为 JSON

EXPLAIN FORMAT = JSON SELECT * FROM CUSTOMERS;

Output

执行上述查询将产生以下输出:

Example

在以下示例中,我们将 CUSTOMERS 表格式描述为 TREE

EXPLAIN FORMAT = TREE SELECT * FROM CUSTOMERS;

Output

执行上述查询将产生以下输出:

Describing Table Using a Client Program

除了使用 MySQL 查询从 MySQL 数据库描述表外,我们还可使用客户端程序对表执行 DESCRIBE TABLE 操作。

Syntax

以下是在各种编程语言中从 MySQL 数据库描述表的语法 −

Example

以下是这些程序 −