SHOW COLUMNS
Sintassi
SHOW [FULL] COLUMNS FROM nome_tabella [FROM nome_db] [LIKE 'pattern' | WHERE espr]
Spiegazione
SHOW COLUMNS
mostra informazioni sulle colonne di una data tabella. Funziona anche con le viste. La clausola LIKE
, se presente, retringe l'output alle colonne i cui nomi corrispondono al pattern. La clausola WHERE
può essere usata per specificare condizioni più generiche, come spiegato
in http://dev.mysql.com/doc/refman/5.1/en/extended-show.html.
MariaDB [test]> SHOW COLUMNS FROM 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)
Se i tipi dei dati non sono quelli che ci si aspetta in base all'istruzione
CREATE TABLE
che è stata usata, si noti che a volte MySQL modifica i tipi quando si crea o si altera una tabella. Le condizioni sotto le quali ciò accade sono illustrate alla pagina
http://dev.mysql.com/doc/refman/5.1/en/silent-column-changes.html.
La parola chiave FULL
fa sì che l'output includa la collation e i commenti, così come i privilegi di cui si dispone per ogni colonna.
E' possibile usare la forma nome_db.nome_tabella
in alternativa a
tbl_name FROM db_name
. In altre parole, le seguenti istruzioni sono equivalenti:
SHOW COLUMNS FROM nome_tabella FROM nome_db; SHOW COLUMNS FROM nome_db.nome_tabella;
SHOW COLUMNS
mostra i seguenti valori per ogni colonna della tabella:
Field indica il nome della colonna.
Type indica il tipo della colonna.
Collation per le stringhe non binarie indica la collatiion, per le altre colonne è NULL. Questo valore viene mostrato solo se si specifica la parola chiave FULL.
Il campo Null contiene YES se i valori NULL sono ammessi nella colonna, altrimenti NO.
Il campo Key indica se la colonna è indicizzata:
- Se Key è vuoto, la colonna non è indicizzata, oppure è una colonna secondaria in un indice a colonne multiple e non univoco.
- Se Key è PRI, la colonna è una chiave primaria, oppure è parte di una chiave primaria a colonne multiple.
- Se Key è UNI, la colonna è il primo campo di un indice univoco che non può contenere valori
NULL
. - Se Key è MUL, nella colonna sono ammesse ripetizioni dello stesso valore. E' la prima colonna di un indice non univoco, o un indice univoco che può contenere valori
NULL
.
Se per una data colonna si applica più di un valore in Key, viene mostrato quello con la priorità più alta, che nell'ordine sono: PRI, UNI, MUL.
A UNIQUE
index may be displayed as PRI
if
it cannot contain NULL
values and there is no
PRIMARY KEY
in the table. A UNIQUE
index
may display as MUL
if several columns form a composite
UNIQUE
index; although the combination of the columns is
unique, each column can still hold multiple occurrences of a given value.
The Default field indicates the default value that is assigned to the column.
The Extra field contains any additional information that is available about a given column.
Value | Description |
---|---|
AUTO_INCREMENT | The column was created with the AUTO_INCREMENT keyword. |
PERSISTENT | The column was created with the PERSISTENT keyword. (New in 5.3) |
VIRTUAL | The column was created with the VIRTUAL keyword. |
on update CURRENT_TIMESTAMP | The column is a TIMESTAMP column that is automaticly updated on INSERT and UPDATE. |
Privileges indicates the privileges you have for the column. This
value is displayed only if you use the FULL
keyword.
Comment indicates any comment the column has. This value is displayed
only if you use the FULL
keyword.
SHOW FIELDS
is a synonym for
SHOW COLUMNS
. You can also list a table's columns with the
mysqlshow db_name tbl_name
command.
The DESCRIBE statement provides information similar to SHOW COLUMNS.
The SHOW CREATE TABLE, SHOW TABLE STATUS, and SHOW INDEX statements also provide information about tables.