MySQLで各テーブルの行数を調べるには?information_schema.tablesの使い方
MySQLでデータベース内の各テーブルのレコード数(行数)を調べたいときは、システムテーブル「information_schema.tables」を利用すると便利です。information_schemaにはテーブル名や行数といったメタデータが格納されており、SQLを1文実行するだけで全テーブルの行数を一覧表示できます。
行数を取得するための基本構文
SELECT table_name, table_rows FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'yourDatabaseName';
- table_name … テーブルの名前
- table_rows … そのテーブルの行数(概算値)
- TABLE_SCHEMA … 調べたいデータベース名を指定します
実行例:「test」データベースの場合
ここでは、データベース名が「test」であるケースを実行してみましょう。次のクエリを実行すると、テーブル名とそれぞれの行数が一覧で出力されます。
mysql> SELECT table_name, table_rows
-> FROM INFORMATION_SCHEMA.TABLES
-> WHERE TABLE_SCHEMA = 'test';
実行結果は次のようになります(抜粋)。
+------------------------------------+------------+ | TABLE_NAME | TABLE_ROWS | +------------------------------------+------------+ | _student_trackerdemo | 0 | | _studenttrackerdemo | 0 | | add30minutesdemo | 0 | | addcolumn | 0 | | addingcurrencysymboldemo | 4 | | addingdaysdemo | 8 | | addoneday | 2 | | agecalculatesdemo | 4 | | agedemo | 4 | | aliasdemo | 2 | | allcharacterbeforespace | 4 | | allownulldemo | 2 | | allrecordsfromadate | 5 | | allrecordswithactive | 6 | | allrows | 4 | | appenddatademo | 3 | ...(中略)... | uservariableinlike | 5 | | view_student | 0 | | viewdemo | 2 | | wheredemo | 4 | | wholewordmatchdemo | 2 | | yesterdaydatedemo | 2 | | zipcodepadwithzerodemo | 4 | +------------------------------------+------------+ 243 rows in set (0.86 sec)
このように、「test」データベースには243個のテーブルが存在し、各テーブルごとの行数を一度に確認できました。
注意点:InnoDBでは概算値になる
information_schemaのtable_rowsは、ストレージエンジンの種類によって挙動が異なります。
- MyISAM: 正確な行数が返されます
- InnoDB: 統計情報をもとにした概算値が返されるため、実際の行数とズレる場合があります
InnoDBのテーブルで正確な行数が必要な場合は、COUNT(*)を使用してください。
SELECT COUNT(*) FROM yourTableName;
また、特定の複数テーブルについて正確な行数をまとめて比較したい場合は、UNION ALLを組み合わせるとよいでしょう。
SELECT 'employee' AS table_name, COUNT(*) AS table_rows FROM employee UNION ALL SELECT 'student', COUNT(*) FROM student;
用途に応じてinformation_schemaとCOUNT(*)を使い分けることで、効率的かつ正確に行数を把握できます。
-
JavaでMySQLテーブルのカラム数を取得・カウントする方法
MySQLテーブルのカラム(列)数をJavaで取得するには、ResultSetMetaDataインターフェースを使用します。ResultSetMetaDataを活用すれば、カラムの総数だけでなく、各カラムの名前やデータ型といった詳細情報も簡単に取得できます。前提:サンプルテーブルの作成まずは動作確認用のテーブルを作成しましょう。以下のSQLでは、3つのカラムを持つ「DemoTable」を作成しています。mysql> create table DemoTable -> ( -> St
-
MySQLでテーブルの行数を取得する最も簡単な方法|COUNT(*)の使い方を解説
MySQLでテーブルの行数(レコード数)を取得する最も簡単な方法は、集計関数 COUNT(*) を使うことです。この記事では、実際にテーブルを作成し、データを挿入して、COUNT(*) で行数を取得するまでの一連の手順を、サンプルコードとともにわかりやすく解説します。 1. テーブルの作成 まず、CREATE TABLE文を使ってサンプル用のテーブルを作成します。ここでは「FirstName」という1つのカラムを持つシンプルなテーブルを定義します。 mysql> create table DemoTable1575 -> ( &nb