{EXPLAIN | DESCRIBE | DESC}
tbl_name [col_name | wild]
{EXPLAIN | DESCRIBE | DESC}
[EXTENDED] SELECT select_options
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. As of MySQL 5.0.1, these statements also display
information for views. (See Section 13.7.5.5, “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.5, “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.10.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 SELECT
statement with the keyword
EXPLAIN, MySQL displays
information from the optimizer about the query 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.
For information about using
EXPLAIN and
EXPLAIN EXTENDED to obtain
query execution plan information, see
Section 8.2.1, “Optimizing Queries with EXPLAIN”.

User Comments
Add your own comment.