Mostrar todas las tablas. Describir la funcionalidad similar

¿Cómo puedo mostrar todas las tablas en una base de datos similar a la salida comoDESCRIBE myTable. Agregar funcionalidad para:

Todas las mesas a la vezTamaño de la mesaConjunto de caracteres e información de clasificaciónCapacidades de clasificación

Nota:DESCRIBE La salida es simple y para una sola tabla a la vez.

Editar:

Buena respuesta de Rick James. Estaba perdido y necesitaba esa lluvia de ideas.

Si alguien quiere agregar funcionalidad (a mi respuesta propia), como una fila sangrada en la parte inferior de cada tabla para

Índices (quizás 1 línea por índice que muestre los nombres de columnas y nombres separados por una comaCardinalidad en esa línea de índice arribaRestricciones de clave extranjeraCualquier otra cosa en brazos que llegue a sus compañeros podría ser útil.Tenga todo este bloque llamado "Información extendida" conceptualmente, y un interruptor (un parámetro) para Yay o Nay para producirlo. Si 'N' entonces no lo produzca.

Estaría muy complacido. Naturalmente, esa información no se colgaría debajo de los encabezados de las columnas que ya se muestran en la respuesta automática a continuación. Entonces, algo visual como una sangría es lo que viene inmediatamente a la mente, no tenerlo exactamente como parte de la tabla. La producción aproximada está bien.

Considere lo siguiente como notas generales que pueden ser de ayuda:

create schema x99;
use x99;

create table parent
(   -- assume your have only one parent, ok bad example, it's early
    id int auto_increment primary key,
    fullName varchar(100) not null
)ENGINE=InnoDB;

-- drop table child;
create table child
(   id int auto_increment primary key,
    fullName varchar(100) not null,
    myParent int not null,
    CONSTRAINT `mommy_daddy` FOREIGN KEY (myParent) REFERENCES parent(id)
        ON DELETE CASCADE ON UPDATE CASCADE     
)ENGINE=InnoDB;

create table t3
(   id INT AUTO_INCREMENT PRIMARY KEY,
    myD DATE NOT NULL,
    myI INT NOT NULL,
    KEY `t3_001` (myD,myI)
);

create table t4
(   someCode CHAR(4) PRIMARY KEY,
    codeDescr VARCHAR(500) NOT NULL
);

create table t5
(   id INT AUTO_INCREMENT PRIMARY KEY,
    theCode CHAR(4) NOT NULL,
    d1 DATE NOT NULL,
    i1 INT NOT NULL,
    someOther DATETIME NOT NULL,
    FOREIGN KEY `cd_2_t4` (theCode) REFERENCES t4(someCode),
    FOREIGN KEY `cd_2_t3` (d1,i1) REFERENCES t3(myD,myI)
);

-- The below 2 lines are merely to show cardinality which I am sure is
-- read from INFO SCHEMA too
show indexes in child; -- to pick up cardinality (or from INFO SCHEMA)
show indexes in t5; -- ditto
-- So, I am not suggesting to actually call "show indexes"


-- http://dev.mysql.com/doc/refman/5.7/en/key-column-usage-table.html
-- James Goatcher
SELECT CONCAT( table_name, '.', 
column_name, ' -> ', 
referenced_table_name, '.', 
referenced_column_name ) AS list_of_fks 
FROM information_schema.KEY_COLUMN_USAGE 
WHERE REFERENCED_TABLE_SCHEMA = 'x99' 
AND REFERENCED_TABLE_NAME is not null 
ORDER BY TABLE_NAME, COLUMN_NAME; 
+-----------------------------+
| list_of_fks                 |
+-----------------------------+
| child.myParent -> parent.id |
| t5.d1 -> t3.myD             |
| t5.i1 -> t3.myI             |
| t5.theCode -> t4.someCode   |
+-----------------------------+

Despite the output suggested by James Goatcher on that Webpage, 
perhaps what would look better under table t5 as 2 lines:

t5.d1,i1 -> t3.myD,myI              <----- That there would be swell
t5.theCode -> t4.someCode

-- You may make the assumption that all tables are in the same schema
-- If they aren't and it blows up that is fine

drop schema x99;

Me gustaría otorgar esta recompensa.

Respuestas a la pregunta(1)

Su respuesta a la pregunta