MySQLまたはMariaDBのデータベース内のカラム数を確認する方法をお伝えします。

サンプルデータベースを次のように準備します。


# データベース作成
CREATE DATABASE sample_database;

# データベース指定
use sample_database;

# テーブル作成
CREATE TABLE sample01 (col11 INT, col12 CHAR(10));
CREATE TABLE sample02 (col21 INT, col22 CHAR(10), col23 DOUBLE);

データベース内のテーブルに関する情報はinformation_schema.columnsにあります。


SHOW FULL COLUMNS FROM information_schema.columns;

+--------------------------+---------------------+-----------------+------+-----+---------+-------+------------+---------+
| Field                    | Type                | Collation       | Null | Key | Default | Extra | Privileges | Comment |
+--------------------------+---------------------+-----------------+------+-----+---------+-------+------------+---------+
| TABLE_CATALOG            | varchar(512)        | utf8_general_ci | NO   |     |         |       | select     |         |
| TABLE_SCHEMA             | varchar(64)         | utf8_general_ci | NO   |     |         |       | select     |         |
| TABLE_NAME               | varchar(64)         | utf8_general_ci | NO   |     |         |       | select     |         |
| COLUMN_NAME              | varchar(64)         | utf8_general_ci | NO   |     |         |       | select     |         |
| ORDINAL_POSITION         | bigint(21) unsigned | NULL            | NO   |     | 0       |       | select     |         |
| COLUMN_DEFAULT           | longtext            | utf8_general_ci | YES  |     | NULL    |       | select     |         |
| IS_NULLABLE              | varchar(3)          | utf8_general_ci | NO   |     |         |       | select     |         |
| DATA_TYPE                | varchar(64)         | utf8_general_ci | NO   |     |         |       | select     |         |
| CHARACTER_MAXIMUM_LENGTH | bigint(21) unsigned | NULL            | YES  |     | NULL    |       | select     |         |
| CHARACTER_OCTET_LENGTH   | bigint(21) unsigned | NULL            | YES  |     | NULL    |       | select     |         |
| NUMERIC_PRECISION        | bigint(21) unsigned | NULL            | YES  |     | NULL    |       | select     |         |
| NUMERIC_SCALE            | bigint(21) unsigned | NULL            | YES  |     | NULL    |       | select     |         |
| DATETIME_PRECISION       | bigint(21) unsigned | NULL            | YES  |     | NULL    |       | select     |         |
| CHARACTER_SET_NAME       | varchar(32)         | utf8_general_ci | YES  |     | NULL    |       | select     |         |
| COLLATION_NAME           | varchar(32)         | utf8_general_ci | YES  |     | NULL    |       | select     |         |
| COLUMN_TYPE              | longtext            | utf8_general_ci | NO   |     | NULL    |       | select     |         |
| COLUMN_KEY               | varchar(3)          | utf8_general_ci | NO   |     |         |       | select     |         |
| EXTRA                    | varchar(27)         | utf8_general_ci | NO   |     |         |       | select     |         |
| PRIVILEGES               | varchar(80)         | utf8_general_ci | NO   |     |         |       | select     |         |
| COLUMN_COMMENT           | varchar(1024)       | utf8_general_ci | NO   |     |         |       | select     |         |
+--------------------------+---------------------+-----------------+------+-----+---------+-------+------------+---------+

そのinformation_schema.columnsを用いて、sample_databaseデータベース内のカラム数を確認するSQLコードは次になります。


SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = 'sample_database';

+----------+
| COUNT(*) |
+----------+
|        5 |
+----------+
1 row in set (0.00 sec)

関連する記事

  • 平均的に分類する方法の考察(2)平均的に分類する方法の考察(2) 前回は、100人の学生のスコアを求めて、スコアの昇順に3つのグループに振り分ける方法を試した。振り分け方は、単純に、3つのグループに属する学生の少ないほうからである。前回の終わりに、各インデックスの平均値を考慮したものを考えてみると書いたが、その前に、一つ確認しておかなければならないことを忘れていたので、今回はその確認をしようと思う。 何を確認し忘れたかというと、全体の […]
  • Ubuntu14.04でPython3に対応したmatplotlibを使用するための手順Ubuntu14.04でPython3に対応したmatplotlibを使用するための手順 Ubuntu14.04でPython3に対応したmatplotlibを使用するための手順をご紹介する。 1. […]
  • 地図で見る石川県白山市の人口 2013年12月版地図で見る石川県白山市の人口 2013年12月版 白山市役所が公開している平成25年12月末日の住民基本台帳人口と総務省統計局が公開している地図データを基に人口、人口密度、世帯数などの数値および前年同月からの増減率を地図上に色分けして視覚化したものと上位・下位のランキングをご紹介する。 人口の上位・下位ランキング […]
  • R実装と解説 対応のない2標本の母平均の差の検定(母分散が等しい) [latexpage] 母分散が等しい場合の対応のない2標本の母平均の差の検定とは、2つの母集団が正規分布に従い、ともに母分散が等しいと仮定できるとき、一方の母平均が他方の母平均と「異なる」または「大きい」、「小さい」かどうかを、検定統計量がt分布に従うことを利用して検定します。 統計的検定の流れ 検定の大まかな流れを確認しておきます。 […]
  • さくらVPSのUbuntuでWordPressをHTTPからHTTPSへ移行する手順さくらVPSのUbuntuでWordPressをHTTPからHTTPSへ移行する手順 当サイトをhttpsに移行した手順をお伝えいたします。 当サイトはさくらVPS上のUbuntu 14.04LTSでWordPressを構築して運用しております。そこで、SSLサーバ証明書はさくらインターネットのサービスであるラピッドSSLを使用することにしました。このサービスを選んだ理由は次になります。 価格が安い […]
MySQL データベース内のカラム数を確認する方法