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 テーブル名; を実行して正確な値を確認することをおすすめします。
-
JavaでMySQLデータベースのテーブルから最後のレコードを取得する方法
MySQLデータベースからデータを取得するには、JavaのexecuteQuery()メソッドを使用します。本記事では、テーブルに登録された最後のレコード(最新の1件)をJavaプログラムで取得する手順を、サンプルコード付きでわかりやすく解説します。1. MySQLデータベースにテーブルを作成するまず、MySQLデータベース上にテーブルを用意します。ここでは「sample」データベースに、以下のようなテーブルを作成します。mysql> create table javaGetDataDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRI
-
MySQLデータベース内のすべてのテーブルを一覧表示する方法
```html ここでは、MySQLデータベース内のすべてのテーブルを一覧表示する方法について解説します。 データベースの選択 データベースを作成した後、そのデータベースにアクセスして使用するには、以下のクエリを実行します。 mysql> USE databaseName Database changed USEステートメントの特徴 USEステートメントはセミコロンを必要としません。これはQUITステートメントと同様の仕様です。ただし、セミコロンを付けても問題はありません。 自分専用のデータベースを作成して使用することも可能ですが、その前にMySQL管理者の権限付与が必要になります。