Aquí hay cuatro formas de obtener el tipo de datos de una columna en MySQL.
El SHOW COLUMNS
Declaración
El SHOW COLUMNS
muestra información sobre las columnas en una tabla o vista determinada. Podemos pasar el nombre de la tabla o vista para devolver información sobre sus columnas:
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 reducirlo a una sola columna si es necesario:
SHOW COLUMNS FROM Pets
WHERE Field = 'PetName';
Resultado:
+---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | PetName | varchar(60) | NO | | NULL | | +---------+-------------+------+-----+---------+-------+
El DESCRIBE
/ DESC
Declaración
El DESCRIBE
instrucción es un atajo para SHOW COLUMNS FROM
sintaxis:
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 | | +-----------+-------------+------+-----+---------+-------+
Simplemente agregue el nombre de la columna para limitarlo a una sola columna:
DESCRIBE Pets PetName;
Resultado:
+---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | PetName | varchar(60) | NO | | NULL | | +---------+-------------+------+-----+---------+-------+
También puede utilizar comodines:
DESCRIBE Pets 'Pet%';
Resultado:
+-----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+-------+ | PetId | int | NO | PRI | NULL | | | PetTypeId | int | NO | | NULL | | | PetName | varchar(60) | NO | | NULL | | +-----------+-------------+------+-----+---------+-------+
También puede acortarlo a DESC
:
DESC Pets PetName;
Resultado:
+---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | PetName | varchar(60) | NO | | NULL | | +---------+-------------+------+-----+---------+-------+
El information_schema.columns
Ver
El information_schema.columns
la vista contiene información sobre las columnas:
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 | +-------------+-----------+------------+--------------+
En este caso utilicé DATABASE()
función para devolver el nombre de la base de datos actual. Alternativamente, podría usar el nombre de una base de datos específica.
El mysqlshow
Utilidad
El mysqlshow
La utilidad muestra la estructura de una base de datos MySQL (bases de datos, tablas, columnas e índices).
Esta utilidad se ejecuta por sí sola. En otras palabras, no ejecute esto desde MySQL. En su lugar, abra una nueva ventana de terminal/línea de comandos y ejecútela desde allí.
Ejemplo:
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 | | +---------+-------------+--------------------+------+-----+---------+-------+---------------------------------+---------+
En este ejemplo, PetHotel
es el nombre de la base de datos, Pets
es la tabla, y PetName
es la columna que me interesa.
También proporcioné el nombre de usuario con el que conectarme. La utilidad acepta bastantes opciones. Consulte la documentación de MySQL para obtener más información.