MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

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(*) を個別に実行して合計する方法を検討してください。

  1. MySQLで複数のデータベースにまたがるテーブルの総行数を取得する方法

    複数のデータベースに存在する同名テーブルの総行数を取得したい場合は、集計関数 SUM() と INFORMATION_SCHEMA を組み合わせることで実現できます。ここでは、実際にサンプルを作成しながら手順を解説します。 1. 「web」データベースにテーブルを作成する まずは「web」データベース内にテーブルを作成します。以下のコマンドを実行してください。 mysql> create table DemoTable1568 -> ( -> Name varchar(20) -> ); Query OK, 0 rows affected (0.

  2. MySQLでテーブルの行数を取得する最も簡単な方法|COUNT(*)の使い方を解説

    MySQLでテーブルの行数(レコード数)を取得する最も簡単な方法は、集計関数 COUNT(*) を使うことです。この記事では、実際にテーブルを作成し、データを挿入して、COUNT(*) で行数を取得するまでの一連の手順を、サンプルコードとともにわかりやすく解説します。 1. テーブルの作成 まず、CREATE TABLE文を使ってサンプル用のテーブルを作成します。ここでは「FirstName」という1つのカラムを持つシンプルなテーブルを定義します。 mysql> create table DemoTable1575     -> ( &nb