MySQLで列のデータ型を取得する4つの方法は次のとおりです。
SHOW COLUMNS ステートメント
SHOW COLUMNS ステートメントは、特定のテーブルまたはビューの列に関する情報を表示します。テーブルまたはビューの名前を渡して、その列の情報を返すことができます:
SHOW COLUMNS FROM Pets; 結果:
+-----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+-------+ | PetId | int | NO | PRI | NULL | | | PetTypeId | int | NO | | NULL | | | OwnerId | int | NO | | NULL | | | PetName | varchar(60) | NO | | NULL | | | DOB | date | YES | | NULL | | +-----------+-------------+------+-----+---------+-------+
必要に応じて、1つの列に絞り込むことができます:
SHOW COLUMNS FROM Pets
WHERE Field = 'PetName'; 結果:
+---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | PetName | varchar(60) | NO | | NULL | | +---------+-------------+------+-----+---------+-------+
DESCRIBE / DESC ステートメント
DESCRIBE ステートメントは、SHOW COLUMNS FROMのショートカットです。 構文:
DESCRIBE Pets; 結果:
+-----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+-------+ | PetId | int | NO | PRI | NULL | | | PetTypeId | int | NO | | NULL | | | OwnerId | int | NO | | NULL | | | PetName | varchar(60) | NO | | NULL | | | DOB | date | YES | | NULL | | +-----------+-------------+------+-----+---------+-------+
列名を追加して1つの列に絞り込みます:
DESCRIBE Pets PetName; 結果:
+---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | PetName | varchar(60) | NO | | NULL | | +---------+-------------+------+-----+---------+-------+
ワイルドカードを使用することもできます:
DESCRIBE Pets 'Pet%'; 結果:
+-----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+-------+ | PetId | int | NO | PRI | NULL | | | PetTypeId | int | NO | | NULL | | | PetName | varchar(60) | NO | | NULL | | +-----------+-------------+------+-----+---------+-------+
DESCに短縮することもできます :
DESC Pets PetName; 結果:
+---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | PetName | varchar(60) | NO | | NULL | | +---------+-------------+------+-----+---------+-------+
information_schema.columns 表示
information_schema.columns ビューには列に関する情報が含まれています:
SELECT
COLUMN_NAME,
DATA_TYPE,
CHARACTER_MAXIMUM_LENGTH AS MAX_LENGTH,
CHARACTER_OCTET_LENGTH AS OCTET_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'Pets'
AND COLUMN_NAME = 'PetName'; 結果:
+-------------+-----------+------------+--------------+ | COLUMN_NAME | DATA_TYPE | MAX_LENGTH | OCTET_LENGTH | +-------------+-----------+------------+--------------+ | PetName | varchar | 60 | 240 | +-------------+-----------+------------+--------------+
この場合、DATABASE()を使用しました 現在のデータベースの名前を返す関数。または、特定のデータベースの名前を使用することもできます。
mysqlshow ユーティリティ
mysqlshow ユーティリティは、MySQLデータベースの構造(データベース、テーブル、列、およびインデックス)を表示します。
このユーティリティは単独で実行されます。つまり、MySQL内からこれを実行しないでください。代わりに、新しいターミナル/コマンドラインウィンドウを開き、そこから実行します。
例:
mysqlshow -u root PetHotel Pets PetName 結果:
+---------+-------------+--------------------+------+-----+---------+-------+---------------------------------+---------+ | Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment | +---------+-------------+--------------------+------+-----+---------+-------+---------------------------------+---------+ | PetName | varchar(60) | utf8mb4_0900_ai_ci | NO | | | | select,insert,update,references | | +---------+-------------+--------------------+------+-----+---------+-------+---------------------------------+---------+
この例では、PetHotel データベースの名前、Pets はテーブルであり、PetName 興味のあるコラムです。
接続するためのユーザー名も指定しました。ユーティリティはかなりの数のオプションを受け入れます。詳細については、MySQLのドキュメントを参照してください。