¿Es posible obtener de alguna manera la estructura de la base de datos MySQL, o simplemente alguna tabla con una consulta simple?
¿O hay otra forma, cómo puedo hacerlo?
¿Es posible obtener de alguna manera la estructura de la base de datos MySQL, o simplemente alguna tabla con una consulta simple?
¿O hay otra forma, cómo puedo hacerlo?
Respuestas:
Creo que lo que buscas es DESCRIBE
DESCRIBE table;
También puedes usar SHOW TABLES
SHOW TABLES;
para obtener una lista de las tablas en su base de datos.
Para obtener toda la estructura de la base de datos como un conjunto de instrucciones CREATE TABLE , use mysqldump :
mysqldump database_name --compact --no-data
Para tablas individuales, agregue el nombre de la tabla después del nombre db en mysqldump. Obtiene los mismos resultados con SQL y SHOW CREATE TABLE :
SHOW CREATE TABLE table;
O DESCRIBA si prefiere una lista de columnas:
DESCRIBE table;
show create table
era exactamente lo que estaba buscando. ¡Gracias!
Echa un vistazo a la INFORMATION_SCHEMA
. TABLES
mesa. Contiene metadatos sobre todas sus tablas.
Ejemplo:
SELECT * FROM `INFORMATION_SCHEMA`.`TABLES`
WHERE TABLE_NAME LIKE 'table1'
La ventaja de esto sobre otros métodos es que puede usar fácilmente consultas como la anterior como subconsultas en sus otras consultas.
information_schema
? columns
(¿usa la columns
tabla en lugar de tables
? Porque tables
no contiene ninguna información sobre qué tipos son las columnas de la tabla)
usando esto:
SHOW CREATE TABLE `users`;
te dará el DDL para esa tabla
DESCRIBE `users`
enumerará las columnas en esa tabla
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME ='products';
donde Table_schema
es el nombre de la base de datos
SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_COMMENT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'my_db_name' AND TABLE_NAME ='users';
Esa es la consulta SHOW CREATE TABLE . También puede consultar las TABLAS DE ESQUEMA .
SHOW CREATE TABLE YourTableName;
Una variación de la primera respuesta que encontré útil
Abra su símbolo del sistema e ingrese (no tiene que iniciar sesión en su servidor mysql)
mysqldump -hlocalhost -u<root> -p<password> <dbname> --compact --no-data > </path_to_mydump/>mysql.dmp
SELECT COLUMN_NAME
DE INFORMATION_SCHEMA
. COLUMNS
DONDE TABLE_SCHEMA
= 'bodb' YTABLE_NAME
= 'abc';
funciona para obtener todos los nombres de columna
En el siguiente ejemplo,
playground
es el nombre de la base de datos yequipment
es el nombre de la tabla
Otra forma es usar SHOW-COLUMNS: 5.5 (disponible también para 5.5>
)
$ mysql -uroot -p<password> -h<host> -P<port> -e \
"SHOW COLUMNS FROM playground.equipment"
Y la salida:
mysql: [Warning] Using a password on the command line interface can be insecure.
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| type | varchar(50) | YES | | NULL | |
| quant | int(11) | YES | | NULL | |
| color | varchar(25) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
También se puede usar mysqlshow-client (también disponible para 5.5>
) como sigue:
$ mysqlshow -uroot -p<password> -h<host> -P<port> \
playground equipment
Y la salida:
mysqlshow: [Warning] Using a password on the command line interface can be insecure.
Database: playground Table: equipment
+-------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
| Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment |
+-------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
| id | int(11) | | NO | PRI | | auto_increment | select,insert,update,references | |
| type | varchar(50) | latin1_swedish_ci | YES | | | | select,insert,update,references | |
| quant | int(11) | | YES | | | | select,insert,update,references | |
| color | varchar(25) | latin1_swedish_ci | YES | | | | select,insert,update,references | |
+-------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
SHOW TABLES FROM database_name