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のドキュメントを参照してください。