13.7.5.5 SHOW COLUMNS Statement
SHOW [FULL] {COLUMNS | FIELDS}
{FROM | IN} tbl_name
[{FROM | IN} db_name]
[LIKE 'pattern' | WHERE expr]
SHOW COLUMNS displays information about the columns in a given table. It also works for views. SHOW COLUMNS displays information only for those columns for which you have some privilege.
mysql> SHOW COLUMNS FROM City;
+-------------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+----------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| Name | char(35) | NO | | | |
| CountryCode | char(3) | NO | MUL | | |
| District | char(20) | NO | | | |
| Population | int(11) | NO | | 0 | |
+-------------+----------+------+-----+---------+----------------+
An alternative to syntax is tbl_name
FROM db_namedb_name.tbl_name. These two statements are equivalent:
SHOW COLUMNS FROM mytable FROM mydb;
SHOW COLUMNS FROM mydb.mytable;
The optional FULL keyword causes the output to include the column collation and comments, as well as the privileges you have for each column.
The LIKE clause, if present, indicates which column names to match. The WHERE clause can be given to select rows using more general conditions, as discussed in Section 24.8, “Extensions to SHOW Statements”.
The data types may differ from what you expect them to be based on a CREATE TABLE statement because MySQL sometimes changes data types when you create or alter a table. The conditions under which this occurs are described in Section 13.1.18.6, “Silent Column Specification Changes”.
SHOW COLUMNS displays the following values for each table column:
-
FieldThe column name.
-
TypeThe column data type.
-
CollationThe collation for nonbinary string columns, or
NULLfor other columns. This value is displayed only if you use theFULLkeyword. -
NullThe column nullability. The value is
YESifNULLvalues can be stored in the column,NOif not. -
KeyWhether the column is indexed:
If
Keyis empty, the column either is not indexed or is indexed only as a secondary column in a multiple-column, nonunique index.If
KeyisPRI, the column is aPRIMARY KEYor is one of the columns in a multiple-columnPRIMARY KEY.If
KeyisUNI, the column is the first column of aUNIQUEindex. (AUNIQUEindex permits multipleNULLvalues, but you can tell whether the column permitsNULLby checking theNullfield.)If
KeyisMUL, the column is the first column of a nonunique index in which multiple occurrences of a given value are permitted within the column.
If more than one of the
Keyvalues applies to a given column of a table,Keydisplays the one with the highest priority, in the orderPRI,UNI,MUL.A
UNIQUEindex may be displayed asPRIif it cannot containNULLvalues and there is noPRIMARY KEYin the table. AUNIQUEindex may display asMULif several columns form a compositeUNIQUEindex; although the combination of the columns is unique, each column can still hold multiple occurrences of a given value. -
DefaultThe default value for the column. This is
NULLif the column has an explicit default ofNULL, or if the column definition includes noDEFAULTclause. -
ExtraAny additional information that is available about a given column. The value is nonempty in these cases:
-
PrivilegesThe privileges you have for the column. This value is displayed only if you use the
FULLkeyword. -
CommentAny comment included in the column definition. This value is displayed only if you use the
FULLkeyword.
Table column information is also available from the INFORMATION_SCHEMA COLUMNS table. See Section 24.3.5, “The INFORMATION_SCHEMA COLUMNS Table”.
You can list a table's columns with the mysqlshow db_name tbl_name command.
The DESCRIBE statement provides information similar to SHOW
COLUMNS. See Section 13.8.1, “DESCRIBE Statement”.
The SHOW CREATE TABLE, SHOW TABLE STATUS, and SHOW INDEX statements also provide information about tables. See Section 13.7.5, “SHOW Statements”.
© 2025 Oracle
Licensed under the GPLv2 License.