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

MySQLでテーブルの行数を確認する方法|COUNT(*)の使い方を実例で解説

MySQLデータベースのテーブルに格納されている行数(レコード数)を確認したい場合は、集計関数 COUNT(*) を使用します。この記事では、基本的な構文から実際にテーブルを作成して行数を取得するまでの手順を、サンプルコード付きでわかりやすく解説します。

行数を取得するための基本構文

テーブルの総行数を取得するには、以下のように SELECT 文と COUNT(*) を組み合わせます。

SELECT COUNT(*) FROM テーブル名;

それでは、実際にテーブルを作成しながら動作を確認していきましょう。

サンプルテーブルの作成

まず、動作確認用のテーブルを作成します。以下のクエリを実行してください。

mysql> create table CountRowsDemo
    - > (
    - > Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    - > Name varchar(20)
    - > );
Query OK, 0 rows affected (0.78 sec)

このテーブルは、自動採番される「Id」カラムと、名前を格納する「Name」カラムで構成されています。

テストデータの挿入

次に、INSERT コマンドを使って複数のレコードを挿入します。あえてNULL値を含むデータも登録している点に注目してください。

mysql> insert into CountRowsDemo(Name) values(NULL);
Query OK, 1 row affected (0.15 sec)
mysql> insert into CountRowsDemo(Name) values('Sam');
Query OK, 1 row affected (0.25 sec)
mysql> insert into CountRowsDemo(Name) values(NULL);
Query OK, 1 row affected (0.11 sec)
mysql> insert into CountRowsDemo(Name) values('Mike');
Query OK, 1 row affected (0.21 sec)
mysql> insert into CountRowsDemo(Name) values('David');
Query OK, 1 row affected (0.11 sec)
mysql> insert into CountRowsDemo(Name) values(NULL);
Query OK, 1 row affected (0.11 sec)
mysql> insert into CountRowsDemo(Name) values(NULL);
Query OK, 1 row affected (0.09 sec)
mysql> insert into CountRowsDemo(Name) values('Carol');
Query OK, 1 row affected (0.17 sec)

登録されたレコードの確認

SELECT 文ですべてのレコードを表示してみましょう。

mysql> select *from CountRowsDemo;

実行結果は以下の通りです。

+----+-------+
| Id | Name  |
+----+-------+
|  1 | NULL  |
|  2 | Sam   |
|  3 | NULL  |
|  4 | Mike  |
|  5 | David |
|  6 | NULL  |
|  7 | NULL  |
|  8 | Carol |
+----+-------+
8 rows in set (0.00 sec)

合計8件のレコードが登録されており、そのうち4件はNameカラムがNULLになっています。

COUNT(*)で行数を取得する

それでは、COUNT(*) を使ってテーブルの行数をカウントしてみましょう。結果を見やすくするために、AS 句で別名「TotalRows」を付けています。

mysql> select count(*) AS TotalRows from CountRowsDemo;

実行結果は以下の通りです。

+-----------+
| TotalRows |
+-----------+
|         8 |
+-----------+
1 row in set (0.00 sec)

テーブル内の全行数である「8」が返されました。

補足:COUNT(*)とCOUNT(列名)の違い

COUNT(*) はNULL値を含むすべての行をカウントします。一方、COUNT(列名) のように特定のカラムを指定した場合は、そのカラムがNULLでない行のみがカウントされます。今回の例で SELECT COUNT(Name) FROM CountRowsDemo; を実行すると、結果は「4」となります。用途に応じて使い分けるようにしましょう。

  1. MySQLで現在選択中のデータベースを確認する方法|DATABASE()関数とstatusコマンドの使い方

    MySQLに接続している際、「今どのデータベースを選択しているのか」を確認したい場面はよくあります。この記事では、DATABASE()関数やstatusコマンドを使って、現在選択中のデータベース名を簡単に確認する方法を解説します。 DATABASE()関数で選択中のデータベースを確認する MySQLでは、DUALテーブルに対してDATABASE()関数を実行することで、現在選択されているデータベース名を取得できます。 手順1:データベースを選択する まず、例として「business」というデータベースを選択してみましょう。以下のコマンドを実行します。 mysql> use busi

  2. MySQLで複数の行(レコード)が存在するかどうかを確認するクエリの書き方

    MySQLでは、COUNT(DISTINCT ...) を活用することで、指定した複数の行(レコード)がテーブル内にすべて存在するかどうかを簡単に確認できます。この記事では、具体的なサンプルを使って手順を解説します。 1. サンプルテーブルを作成する まず、動作確認用のテーブルを作成します。 mysql> create table DemoTable1219 ( Id int, Name varchar(40) ); Query OK, 0 rows affected (0.43 sec) 2. テストデータを挿入する INSERT コマンドを使って、いくつかのレコー