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

MariaDBで列の照合を取得する3つの方法

    MariaDBの列の照合を返す3つの方法があります。

    SHOW COLUMNS ステートメント

    SHOW COLUMNS ステートメントにはオプションのFULLがあります キーワード。これを使用すると、列の照合とコメント、および各列に対する権限が出力されます。

    Eventsというテーブルに対してこのステートメントを実行する例を次に示します。 :

    SHOW FULL COLUMNS FROM Events;

    結果の例:

    +-----------+--------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
    | Field     | Type         | Collation         | Null | Key | Default | Extra          | Privileges                      | Comment |
    +-----------+--------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
    | EventId   | int(11)      | NULL              | NO   | PRI | NULL    | auto_increment | select,insert,update,references |         |
    | EventName | varchar(255) | latin5_turkish_ci | YES  |     | NULL    |                | select,insert,update,references |         |
    +-----------+--------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+

    information_schema.columns

    もう1つのオプションは、information_schema.columnsをクエリすることです。 テーブル。この場合、関心のある列だけを選択できます:

    SELECT
        column_name, 
        character_set_name, 
        collation_name 
    FROM information_schema.columns
    WHERE table_name = 'Events'
    AND column_name = 'EventName';

    結果の例:

    +-------------+--------------------+-------------------+
    | column_name | character_set_name | collation_name    |
    +-------------+--------------------+-------------------+
    | EventName   | latin5             | latin5_turkish_ci |
    +-------------+--------------------+-------------------+

    SHOW CREATE TABLE ステートメント

    もう1つのオプションは、SHOW CREATE TABLEを使用することです。 、CREATE TABLEを返します 私たちのテーブルのステートメント。

    ただし、列の文字セットと照合情報は、テーブルのデフォルトの照合と異なる場合にのみ返されます。

    Petsというテーブルに対してこのステートメントを実行する例を次に示します。 、列がテーブルのデフォルトと変わらない場合:

    SHOW CREATE TABLE Pets;

    結果:

    +-------+------------------------------+
    | Table | Create Table                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
    +-------+------------------------------+
    | Pets  | CREATE TABLE `Pets` (
      `PetId` int(11) NOT NULL,
      `PetTypeId` int(11) NOT NULL,
      `OwnerId` int(11) NOT NULL,
      `PetName` varchar(60) NOT NULL,
      `DOB` date DEFAULT NULL,
      PRIMARY KEY (`PetId`),
      KEY `PetTypeId` (`PetTypeId`),
      KEY `OwnerId` (`OwnerId`),
      CONSTRAINT `pets_ibfk_1` FOREIGN KEY (`PetTypeId`) REFERENCES `PetTypes` (`PetTypeId`),
      CONSTRAINT `pets_ibfk_2` FOREIGN KEY (`OwnerId`) REFERENCES `Owners` (`OwnerId`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 |
    +-------+-------------------------------+

    この例では、照合情報はしませんでした 異なるため、どの列についても照合情報は返されませんでした。

    PetNameの照合を変更しましょう 列:

    ALTER TABLE Pets 
    MODIFY PetName VARCHAR(255) 
        CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL;

    そして、SHOW CREATE TABLEを実行します もう一度:

    SHOW CREATE TABLE Pets;

    結果:

    +-------+------------------------------+
    | Table | Create Table                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
    +-------+------------------------------+
    | Pets  | CREATE TABLE `Pets` (
      `PetId` int(11) NOT NULL,
      `PetTypeId` int(11) NOT NULL,
      `OwnerId` int(11) NOT NULL,
      `PetName` varchar(255) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL,
      `DOB` date DEFAULT NULL,
      PRIMARY KEY (`PetId`),
      KEY `PetTypeId` (`PetTypeId`),
      KEY `OwnerId` (`OwnerId`),
      CONSTRAINT `pets_ibfk_1` FOREIGN KEY (`PetTypeId`) REFERENCES `PetTypes` (`PetTypeId`),
      CONSTRAINT `pets_ibfk_2` FOREIGN KEY (`OwnerId`) REFERENCES `Owners` (`OwnerId`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 |
    +-------+-------------------------------+

    今回は、PetNameに対する新しい文字セットと照合設定を確認できます。 列。


    1. データベースにblobを読み込もうとすると、なぜjava.lang.AbstractMethodErrorが発生するのですか?

    2. JDBCステートメントとプリペアドステートメントの違い

    3. シーケンス値を1にリセット

    4. 組織にとってデータバックアップが重要である理由