MySQLデータベースの行(レコード)の総数を取得する方法
MySQLデータベース全体に存在する行(レコード)の総数を取得したい場合、集計関数 SUM() と、INFORMATION_SCHEMA.TABLES に標準で用意されている TABLE_ROWS カラムを組み合わせることで実現できます。
基本となる構文
SELECT SUM(TABLE_ROWS)
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = database();
database() 関数は、現在接続中のデータベース名を返します。この条件を指定することで、使用中のデータベースに属するすべてのテーブルが集計対象になります。
実行例
ここでは、例として「sample」という名前のデータベースに接続しているものとします。
それでは、実際にデータベース内の行の総数を取得してみましょう。
mysql> SELECT SUM(TABLE_ROWS)
-> FROM INFORMATION_SCHEMA.TABLES
-> WHERE TABLE_SCHEMA = database();
このクエリを実行すると、次のような結果が出力されます。
+-----------------+
| SUM(TABLE_ROWS) |
+-----------------+
| 2043 |
+-----------------+
1 row in set (22.11 sec)
この例では、データベース内のすべてのテーブルの合計行数が「2043行」であることがわかります。
注意点
ストレージエンジンに InnoDB を使用しているテーブルの場合、TABLE_ROWS の値は概算値となります。InnoDB は正確な行数を常に保持していないため、厳密な件数が必要なケースでは、各テーブルに対して SELECT COUNT(*) を個別に実行して合計する方法を検討してください。
-
MySQLで複数のデータベースにまたがるテーブルの総行数を取得する方法
複数のデータベースに存在する同名テーブルの総行数を取得したい場合は、集計関数 SUM() と INFORMATION_SCHEMA を組み合わせることで実現できます。ここでは、実際にサンプルを作成しながら手順を解説します。 1. 「web」データベースにテーブルを作成する まずは「web」データベース内にテーブルを作成します。以下のコマンドを実行してください。 mysql> create table DemoTable1568 -> ( -> Name varchar(20) -> ); Query OK, 0 rows affected (0.
-
MySQLでテーブルの行数を取得する最も簡単な方法|COUNT(*)の使い方を解説
MySQLでテーブルの行数(レコード数)を取得する最も簡単な方法は、集計関数 COUNT(*) を使うことです。この記事では、実際にテーブルを作成し、データを挿入して、COUNT(*) で行数を取得するまでの一連の手順を、サンプルコードとともにわかりやすく解説します。 1. テーブルの作成 まず、CREATE TABLE文を使ってサンプル用のテーブルを作成します。ここでは「FirstName」という1つのカラムを持つシンプルなテーブルを定義します。 mysql> create table DemoTable1575 -> ( &nb