Aqui estão quatro maneiras de obter o tipo de dados de uma coluna no MySQL.
O SHOW COLUMNS
Declaração
O
SHOW COLUMNS
instrução exibe informações sobre as colunas em uma determinada tabela ou exibição. Podemos passar o nome da tabela ou view para retornar informações em suas colunas:SHOW COLUMNS FROM Pets;
Resultado:
+-----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+-------+ | PetId | int | NO | PRI | NULL | | | PetTypeId | int | NO | | NULL | | | OwnerId | int | NO | | NULL | | | PetName | varchar(60) | NO | | NULL | | | DOB | date | YES | | NULL | | +-----------+-------------+------+-----+---------+-------+
Podemos reduzi-lo a apenas uma coluna, se necessário:
SHOW COLUMNS FROM Pets
WHERE Field = 'PetName';
Resultado:
+---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | PetName | varchar(60) | NO | | NULL | | +---------+-------------+------+-----+---------+-------+
O DESCRIBE
/ DESC
Declaração
O
DESCRIBE
instrução é um atalho para SHOW COLUMNS FROM
sintaxe:DESCRIBE Pets;
Resultado:
+-----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+-------+ | PetId | int | NO | PRI | NULL | | | PetTypeId | int | NO | | NULL | | | OwnerId | int | NO | | NULL | | | PetName | varchar(60) | NO | | NULL | | | DOB | date | YES | | NULL | | +-----------+-------------+------+-----+---------+-------+
Basta anexar o nome da coluna para reduzi-la a uma coluna:
DESCRIBE Pets PetName;
Resultado:
+---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | PetName | varchar(60) | NO | | NULL | | +---------+-------------+------+-----+---------+-------+
Você também pode usar curingas:
DESCRIBE Pets 'Pet%';
Resultado:
+-----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+-------+ | PetId | int | NO | PRI | NULL | | | PetTypeId | int | NO | | NULL | | | PetName | varchar(60) | NO | | NULL | | +-----------+-------------+------+-----+---------+-------+
Você também pode encurtá-lo para
DESC
:DESC Pets PetName;
Resultado:
+---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | PetName | varchar(60) | NO | | NULL | | +---------+-------------+------+-----+---------+-------+
O information_schema.columns
Visualizar
O
information_schema.columns
view contém informações sobre colunas:SELECT
COLUMN_NAME,
DATA_TYPE,
CHARACTER_MAXIMUM_LENGTH AS MAX_LENGTH,
CHARACTER_OCTET_LENGTH AS OCTET_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'Pets'
AND COLUMN_NAME = 'PetName';
Resultado:
+-------------+-----------+------------+--------------+ | COLUMN_NAME | DATA_TYPE | MAX_LENGTH | OCTET_LENGTH | +-------------+-----------+------------+--------------+ | PetName | varchar | 60 | 240 | +-------------+-----------+------------+--------------+
Neste caso eu usei o
DATABASE()
função para retornar o nome do banco de dados atual. Você também pode usar o nome de um banco de dados específico. O mysqlshow
Utilitário
O
mysqlshow
utilitário mostra a estrutura de um banco de dados MySQL (bancos de dados, tabelas, colunas e índices). Este utilitário é executado por conta própria. Em outras palavras, não execute isso de dentro do MySQL. Em vez disso, abra uma nova janela de terminal/linha de comando e execute-a a partir daí.
Exemplo:
mysqlshow -u root PetHotel Pets PetName
Resultado:
+---------+-------------+--------------------+------+-----+---------+-------+---------------------------------+---------+ | Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment | +---------+-------------+--------------------+------+-----+---------+-------+---------------------------------+---------+ | PetName | varchar(60) | utf8mb4_0900_ai_ci | NO | | | | select,insert,update,references | | +---------+-------------+--------------------+------+-----+---------+-------+---------------------------------+---------+
Neste exemplo,
PetHotel
é o nome do banco de dados, Pets
é a tabela e PetName
é a coluna que me interessa. Eu também forneci o nome de usuário para o qual se conectar. O utilitário aceita algumas opções. Consulte a documentação do MySQL para obter mais informações.