sql >> データベース >  >> RDS >> Mysql

MySQLで列のデータ型を確認する4つの方法

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


    1. MySQLクエリからn番目のレコードを返す

    2. 複合主キーを追加するALTERTABLE

    3. MariaDB JSON_OBJECTAGG()の説明

    4. PostgreSQL8.4で列のデータ型を文字から数値に変更する方法