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

MySQLデータベース内の全テーブルのレコード数を取得する方法

MySQLデータベースに存在するすべてのテーブルのレコード総数を取得したい場合は、INFORMATION_SCHEMA.TABLESビューのTABLE_ROWSカラムを集計関数SUMと組み合わせて使用します。この方法なら、テーブルを1つずつ確認しなくても、データベース全体のレコード数をひとつのクエリで把握できます。

データベース全体の合計レコード数を取得する

基本となる構文は以下の通りです。

SELECT SUM(TABLE_ROWS)
   FROM INFORMATION_SCHEMA.TABLES
   WHERE TABLE_SCHEMA = 'yourDatabaseName';

'yourDatabaseName' の部分を対象のデータベース名に置き換えて実行します。ここでは例として「business」データベースに対して実行してみましょう。

mysql> SELECT SUM(TABLE_ROWS)
    -> FROM INFORMATION_SCHEMA.TABLES
    -> WHERE TABLE_SCHEMA = 'business';

実行結果は以下のようになります。

+-----------------+
| SUM(TABLE_ROWS) |
+-----------------+
|             450 |
+-----------------+
1 row in set (13.54 sec)

この結果から、businessデータベース内の全テーブルに保存されているレコードの合計は450件であることがわかります。

テーブルごとのレコード数を一覧で確認する

続いて、どのテーブルにどれだけのレコードが含まれているのかを個別に確認したい場合は、SUMを使わずにテーブル名と行数をそのまま選択します。

mysql> SELECT TABLE_NAME, TABLE_ROWS
    -> FROM INFORMATION_SCHEMA.TABLES
    -> WHERE TABLE_SCHEMA = 'business';

出力結果(抜粋):

+------------------------------------+------------+
| TABLE_NAME                         | TABLE_ROWS |
+------------------------------------+------------+
| add1daydemo                        |          2 |
| addcheckconstraintdemo             |          0 |
| autoincrement                      |          4 |
| bookindexes                        |          4 |
| clonestudent                       |          3 |
| datetimedemo                       |          3 |
| deletedemo                         |          5 |
| deleterecord                       |          6 |
| distinctdemo                       |          8 |
| last10recordsdemo                  |         12 |
| limitoffsetdemo                    |         11 |
| moviecollection                    |          6 |
| nextpreviousdemo                   |          9 |
| randoptimizedemo                   |         26 |
| rowcountdemo                       |          8 |
| sequencedemo                       |          7 |
| studenttable                       |          4 |
| uniondemo1                         |          3 |
| uniondemo2                         |          7 |
| updatewithlimit                    |          8 |
+------------------------------------+------------+
209 rows in set (0.08 sec)

このように、データベース内の209個のテーブルそれぞれについて、レコード数が一覧形式で表示されます。空のテーブル(レコード数0)も一目で判別できるため、データベースの状況把握やメンテナンス作業に役立ちます。

注意点:TABLE_ROWSは概算値になる場合がある

ストレージエンジンにInnoDBを使用している場合、TABLE_ROWSに返される値は統計情報に基づく概算値であり、実際の正確な行数と多少異なることがあります。監査や帳票作成などで厳密なレコード数が必要なケースでは、各テーブルに対して SELECT COUNT(*) FROM テーブル名; を実行して正確な値を確認することをおすすめします。

  1. JavaでMySQLデータベースのテーブルから最後のレコードを取得する方法

    MySQLデータベースからデータを取得するには、JavaのexecuteQuery()メソッドを使用します。本記事では、テーブルに登録された最後のレコード(最新の1件)をJavaプログラムで取得する手順を、サンプルコード付きでわかりやすく解説します。1. MySQLデータベースにテーブルを作成するまず、MySQLデータベース上にテーブルを用意します。ここでは「sample」データベースに、以下のようなテーブルを作成します。mysql> create table javaGetDataDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRI

  2. MySQLデータベース内のすべてのテーブルを一覧表示する方法

    ```html ここでは、MySQLデータベース内のすべてのテーブルを一覧表示する方法について解説します。 データベースの選択 データベースを作成した後、そのデータベースにアクセスして使用するには、以下のクエリを実行します。 mysql> USE databaseName Database changed USEステートメントの特徴 USEステートメントはセミコロンを必要としません。これはQUITステートメントと同様の仕様です。ただし、セミコロンを付けても問題はありません。 自分専用のデータベースを作成して使用することも可能ですが、その前にMySQL管理者の権限付与が必要になります。