Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

¿Cómo obtener información de las tablas de una base datos?

Estas en el tema de ¿Cómo obtener información de las tablas de una base datos? en el foro de Mysql en Foros del Web. Necesito hacer una consulta a una base datos y que me devuelva los nombres de las tablas y el total de tablas que tiene la ...
  #1 (permalink)  
Antiguo 12/05/2009, 14:53
Avatar de boy-computer  
Fecha de Ingreso: diciembre-2006
Ubicación: Cuba, Pinar del Río
Mensajes: 337
Antigüedad: 17 años, 4 meses
Puntos: 1
Pregunta ¿Cómo obtener información de las tablas de una base datos?

Necesito hacer una consulta a una base datos y que me devuelva los nombres de las tablas y el total de tablas que tiene la base dato. Hasta el momento solo tengo esta pequeña consulta:

Cita:
show table status from nombre_de_la_base_dato
Cómo le pido ahí que me de la cantidad de tablas.
  #2 (permalink)  
Antiguo 12/05/2009, 15:09
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: ¿Cómo obtener información de las tablas de una base datos?

Si usas una versión superior a la 5, esto te puede servir:

Código mysql:
Ver original
  1. select table_name from information_schema.tables
  2.  where table_schema = 'tu_base_de_datos' group by table_name;

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 12/05/2009, 15:27
Avatar de boy-computer  
Fecha de Ingreso: diciembre-2006
Ubicación: Cuba, Pinar del Río
Mensajes: 337
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: ¿Cómo obtener información de las tablas de una base datos?

Uso la versión 5.15 de MySQL, y que va la consulta:

Código:
select table_name from information_schema.tables
 where table_schema = 'tu_base_de_datos' group by table_name;
Lo que me hace es mostrarme una columna con los nombres de las tablas, y yo además de eso lo que quiero es que me diga el total de tablas que tiene esa base datos
  #4 (permalink)  
Antiguo 12/05/2009, 17:35
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: ¿Cómo obtener información de las tablas de una base datos?

Cita:
Necesito hacer una consulta a una base datos y que me devuelva los nombres de las tablas
La consulta hace eso.

Cita:
yo además de eso lo que quiero es que me diga el total de tablas que tiene esa base datos
No te sirve el total de registros que arroja la consulta? lo dice la consulta y de un lenguaje de programación se puede acceder con gran facilidad.

Sin embargo, si lo quieres en la misma consulta (aunque es mas lento e innecesario) lo puedes hacer así:

Código mysql:
Ver original
  1. SELECT table_name, (select count(*) from
  2. information_schema.tables
  3.  WHERE table_schema = 'tu_base_de_datos') conteo
  4.  FROM information_schema.tables
  5.  WHERE table_schema = 'tu_base_de_datos' GROUP BY table_name;
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 12/05/2009, 19:26
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: ¿Cómo obtener información de las tablas de una base datos?

Tu problema se resuelve solo. Esta sentencia:
Código sql:
Ver original
  1. SELECT  TABLE_NAME, COUNT(*) Tabla
  2. FROM information_schema.TABLES
  3.  WHERE table_schema = 'tu_base_de_datos'
  4. GROUP BY TABLE_NAME;
te devuelve un registro por cada tabla, por lo que para saber cuántas tablas tiene la base, solamente debes usar la cantidad de registros que te devolvió. Si usas PHP, ese lenguaje tiene una función específica para darte el dato. Si usas VB.Net, los DataTable tienen una propiedad que devuelve ese valor. Para hacerlo vía SQL, te conviene ejecutar esa sentencia en un SP con un parámetro como dato OUT.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 13/05/2009, 06:49
Avatar de boy-computer  
Fecha de Ingreso: diciembre-2006
Ubicación: Cuba, Pinar del Río
Mensajes: 337
Antigüedad: 17 años, 4 meses
Puntos: 1
De acuerdo Respuesta: ¿Cómo obtener información de las tablas de una base datos?

He usado otra sentencia, pues en realidad me hacñia más falta el conteo de las tablas que sus nombres, no porque fuese menos importante, pero en realidad los dos datos me hacían falta lo que los iba a usar en diferentes parte de mi página Web y entonces por eso no me hacia falta mesclar ambos resultados, digo, talves es más el trabajo que tengo que hacer, pero bueno, me resolvió el problema. La consulta me quedó de la siguiente forma:

Cita:
select count(table_schema) as total from information_schema.tables
where table_schema = 'dpswd'
Gracias a todos, por su ayuda.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:59.