{EXPLAIN | DESCRIBE | DESC}
tbl_name [col_name | wild]
{EXPLAIN | DESCRIBE | DESC}
[explain_type] explainable_stmt
explain_type:
EXTENDED
| PARTITIONS
| FORMAT = format_name
format_name:
TRADITIONAL
| JSON
explainable_stmt:
SELECT statement
| DELETE statement
| INSERT statement
| REPLACE statement
| UPDATE statement
The DESCRIBE and
EXPLAIN statements are synonyms. In
practice, the DESCRIBE keyword is
more often used to obtain information about table structure,
whereas EXPLAIN is used to obtain a
query execution plan (that is, an explanation of how MySQL would
execute a query). The following discussion uses the
DESCRIBE and
EXPLAIN keywords in accordance with
those uses, but the MySQL parser treats them as completely
synonymous.
DESCRIBE provides information about
the columns in a table. It is a shortcut for SHOW COLUMNS
FROM. These statements also display information for
views. (See Section 13.7.5.6, “SHOW COLUMNS Syntax”.)
col_name can be a column name, or a
string containing the SQL “%” and
“_” wildcard characters to obtain
output only for the columns with names matching the string. There
is no need to enclose the string within quotation marks unless it
contains spaces or other special characters.
mysql> DESCRIBE City;
+------------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+----------+------+-----+---------+----------------+
| Id | int(11) | NO | PRI | NULL | auto_increment |
| Name | char(35) | NO | | | |
| Country | char(3) | NO | UNI | | |
| District | char(20) | YES | MUL | | |
| Population | int(11) | NO | | 0 | |
+------------+----------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
The description for SHOW COLUMNS
provides more information about the output columns (see
Section 13.7.5.6, “SHOW COLUMNS Syntax”).
If the data types differ from what you expect them to be based on
a CREATE TABLE statement, note that
MySQL sometimes changes data types when you create or alter a
table. The conditions under which this occurs are described in
Section 13.1.17.3, “Silent Column Specification Changes”.
The DESCRIBE statement is provided
for compatibility with Oracle.
The SHOW CREATE TABLE,
SHOW TABLE STATUS, and
SHOW INDEX statements also provide
information about tables. See Section 13.7.5, “SHOW Syntax”.
The EXPLAIN statement provides a
way to obtain information about how MySQL executes a statement:
When you precede a statement with the keyword
EXPLAIN, MySQL displays
information from the optimizer about the statement execution
plan. That is, MySQL explains how it would process the
statement, including information about how tables are joined
and in which order. EXPLAIN
EXTENDED can be used to obtain additional
information.
As of MySQL 5.6.3, EXPLAIN
provides information about
SELECT,
DELETE,
INSERT,
REPLACE, and
UPDATE statements. Before MySQL
5.6.3, EXPLAIN provides
information only about SELECT
statements.
For information about using
EXPLAIN and
EXPLAIN EXTENDED to obtain
query execution plan information, see
Section 8.8.1, “Optimizing Queries with EXPLAIN”.
EXPLAIN
PARTITIONS is useful only when examining queries
involving partitioned tables. For details, see
Section 18.3.5, “Obtaining Information About Partitions”.
As of MySQL 5.6.5, the FORMAT option can be
used to select the output format.
TRADITIONAL presents the output in tabular
format. This is the default if no FORMAT
option is present. JSON format displays the
information in JSON format. With FORMAT =
JSON, the output includes extended and partition
information.

User Comments
Add your own comment.