ver una todas tipos tablas tabla obtener mostrar listar las estructura datos consultas con columnas campos mysql

una - tipos de indices en mysql



Obtenga todas las columnas de todas las tablas MySQL (10)

¿Existe una manera rápida de obtener todos los nombres de columna de todas las tablas en MySQL, sin tener que enumerar todas las tablas?


es mejor que use la siguiente consulta para obtener todos los nombres de columna fácilmente

Show columns from tablename


En el caso de que sea útil para cualquier otra persona, esto le dará una lista delimitada por comas de las columnas en cada tabla:

SELECT table_name,GROUP_CONCAT(column_name ORDER BY ordinal_position) FROM information_schema.columns WHERE table_schema = DATABASE() GROUP BY table_name ORDER BY table_name

Nota: Cuando utilice tablas con un alto número de columnas y / o con nombres de campo largos, tenga en cuenta el límite group_concat_max_len , que puede hacer que los datos se trunquen.


Escribí esta tontería hace mucho tiempo y todavía la uso de vez en cuando:

https://gist.github.com/kphretiq/e2f924416a326895233d

Básicamente, hace un "MOSTRAR TABLAS", luego un "DESCRIBE" en cada mesa, luego lo escupe como marca.

Simplemente edite debajo del "si nombre " y vaya. Necesitarás tener instalado pymysql.


La pregunta fue:

¿Existe una forma rápida de obtener todos los NOMBRES DE COLUMNAS de todas las tablas en MySQL, sin tener que enumerar todas las tablas?

SQL para obtener toda la información para cada columna

select * from information_schema.columns where table_schema = ''your_db'' order by table_name,ordinal_position

SQL para obtener todos los NOMBRES DE COLUMNA

select COLUMN_NAME from information_schema.columns where table_schema = ''your_db'' order by table_name,ordinal_position


Para enumerar todos los campos de una tabla en MySQL:

select * from information_schema.columns where table_schema = ''your_DB_name'' and table_name = ''Your_tablename''


Piggybacking en la respuesta de Nicola con un poco de php legible

$a = mysqli_query($conn,"select * from information_schema.columns where table_schema = ''your_db'' order by table_name,ordinal_position"); $b = mysqli_fetch_all($a,MYSQLI_ASSOC); $d = array(); foreach($b as $c){ if(!is_array($d[$c[''TABLE_NAME'']])){ $d[$c[''TABLE_NAME'']] = array(); } $d[$c[''TABLE_NAME'']][] = $c[''COLUMN_NAME'']; } echo "<pre>",print_r($d),"</pre>";


Similar a la respuesta publicada por @suganya, esto no responde directamente a la pregunta, pero es una alternativa más rápida para una sola tabla:

DESCRIBE column_name;


<?php $table = ''orders''; $query = "SHOW COLUMNS FROM $table"; if($output = mysql_query($query)): $columns = array(); while($result = mysql_fetch_assoc($output)): $columns[] = $result[''Field'']; endwhile; endif; echo ''<pre>''; print_r($columns); echo ''</pre>''; ?>


SELECT * FROM information_schema.columns WHERE table_schema = DATABASE() ORDER BY table_name, ordinal_position

Como no tengo suficiente representante para comentar, aquí hay una mejora menor (en mi opinión) sobre la excelente respuesta de nick rulez: reemplazando WHERE table_schema = ''your_db'' con WHERE table_schema = DATABASE() WHERE table_schema = ''your_db'' WHERE table_schema = DATABASE() .


select * from information_schema.columns where table_schema = ''your_db'' order by table_name,ordinal_position