¿Cómo obtener la cantidad de registros de una base de datos?

Valoración del Usuario:  / 1
MaloBueno 

En este artículo presento consultas SQL para obtener la cantidad de registros de una base de datos MSSQL y MySQL.



MSSQL

Para contar la cantidad de registros de cada tabla de una determinada base de datos Microsoft SQL Server se debe ejecutar la siguiente consulta:

SELECT
      QUOTENAME(SCHEMA_NAME(sOBJ.schema_id)) + '.' + QUOTENAME(sOBJ.name) AS [TableName]
      , SUM(sPTN.Rows) AS [RowCount]
FROM 
      sys.objects AS sOBJ
      INNER JOIN sys.partitions AS sPTN
            ON sOBJ.object_id = sPTN.object_id
WHERE
      sOBJ.type = 'U'
      AND sOBJ.is_ms_shipped = 0x0
      AND index_id < 2 -- 0:Heap, 1:Clustered
GROUP BY 
      sOBJ.schema_id
      , sOBJ.name
ORDER BY [TableName]
GO

Esta consulta básicamente hace un join de las tablas 'sys.objects' y 'sys.partitions' (filtrando sólo los objetos que son tablas con type = 'U'). De la tabla 'sys.objects' selecciona la columna 'name' que contiene el nombre del objeto (en este caso el nombre de la tabla) y de la tabla 'sys.partitions' selecciona la columna 'Rows' que contiene la cantidad de registros de la tabla.

MySQL

Para obtener la cantidad de registros de cada tabla de la base de datos 'x' en MySQL se debe ejecutar:

select table_name,table_rows from information_schema.tables where table_schema='x';

Por ejemplo, éste es el resultado si se ejecuta la consulta en una base de datos de un sistema Joomla!:

mysql> select table_name,table_rows from information_schema.tables where table_schema='joomladb';
+-------------------------+------------+
| table_name              | table_rows |
+-------------------------+------------+
| banner                  |          8 |
| bannerclient            |          1 |
| bannertrack             |          0 |
| categories              |         23 |
| components              |         45 |
| contact_details         |          1 |
| content                 |         51 |
| content_frontpage       |          8 |
| content_rating          |          0 |                                                         
| core_acl_aro            |          1 |
| core_acl_aro_groups     |         11 |
| core_acl_aro_map        |          0 |
| core_acl_aro_sections   |          1 |
| core_acl_groups_aro_map |          1 |
| core_log_items          |          0 |
| core_log_searches       |          0 |
| dbcache                 |          0 |
| groups                  |          3 |
| jf_content              |         20 |
| jf_tableinfo            |         14 |
| languages               |          3 |
| menu                    |         41 |
| menu_types              |          6 |
| messages                |          0 |
| messages_cfg            |          0 |
| migration_backlinks     |          0 |
| modules                 |         45 |
| modules_menu            |         27 |
| newsfeeds               |         14 |
| plugins                 |         43 |
| poll_data               |         12 |
| poll_date               |         11 |
| poll_menu               |          0 |
| polls                   |          1 |
| sections                |          4 |
| session                 |          1 |
| stats_agents            |          0 |
| templates_menu          |          2 |
| users                   |          1 |
| weblinks                |          6 |
+-------------------------+------------+
40 rows in set (0.07 sec)



Suscribirse

    Registrate para recibir las novedades y artículos por correo electrónico.

Linuxito en G+