¿Cómo muestro el esquema de una tabla en una base de datos MySQL?

Respuestas:

535
describe [db_name.]table_name;

para salida formateada, o

show create table [db_name.]table_name;

para la instrucción SQL que se puede usar para crear una tabla.

Omry Yadan
fuente
2
Esta no es la respuesta. El OP está buscando descifrar la parte "db_name", y esta solución asume que ya lo sabe
Antonio Ortells,
40
el OP aceptó esa respuesta hace 7 años. Creo que estaba contento con esa respuesta.
Omry Yadan
La base de datos no es un esquema.
Codificador
1
o desc [db_name.]table_name;para abreviar.
Yakout
1
En defensa de Antionio, algunos sistemas se refieren a sus colecciones de tablas relacionadas como esquemas y no como bases de datos. No estoy seguro de qué o por qué.
dlamblin
108
SHOW CREATE TABLE yourTable;

o

SHOW COLUMNS FROM yourTable;
Poli
fuente
18

También puede usar la taquigrafía para describir como descpara la descripción de la tabla.

desc [nombre_bd.] nombre_tabla;

o

use db_name;
desc nombre_tabla;

También puede usar explainpara la descripción de la tabla.

explicar [nombre_bd.] nombre_tabla;

Ver documento oficial

Dará salida como:

+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(10)     | NO   | PRI | NULL    |       |
| name     | varchar(20) | YES  |     | NULL    |       |
| age      | int(10)     | YES  |     | NULL    |       |
| sex      | varchar(10) | YES  |     | NULL    |       |
| sal      | int(10)     | YES  |     | NULL    |       |
| location | varchar(20) | YES  |     | Pune    |       |
+----------+-------------+------+-----+---------+-------+
Somnath Muluk
fuente
12

Quizás la pregunta debe ser un poco más precisa aquí acerca de lo que se requiere porque se puede leer de dos maneras diferentes. es decir

  1. ¿Cómo obtengo la estructura / definición de una tabla en mysql?
  2. ¿Cómo obtengo el nombre del esquema / base de datos en el que reside esta tabla?

Dada la respuesta aceptada, el OP claramente pretendía que se interpretara de la primera manera. Para cualquiera que lea la pregunta de otra manera, intente

SELECT `table_schema` 
FROM `information_schema`.`tables` 
WHERE `table_name` = 'whatever';
Paul Campbell
fuente
Su respuesta para el segundo punto me ayudó para lo que estoy buscando. Mi editor arrojó el error que decía "Objeto inválido" en la tabla que intenté usar y no tengo ni idea sobre el DB o el esquema en el que se ubica la tabla, ya que la tabla ya fue creada por otra persona, hasta que obtuve esta información
mannedear
5
SELECT COLUMN_NAME, TABLE_NAME,table_schema
FROM INFORMATION_SCHEMA.COLUMNS;
Justicia
fuente