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

データベース全体で文字セット(および照合)を変更するにはどうすればよいですか?

    データベース照合の変更:

    ALTER DATABASE <database_name> CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
    

    テーブル照合の変更:

    ALTER TABLE <table_name> CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
    

    列の照合を変更する:

    ALTER TABLE <table_name> MODIFY <column_name> VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
    

    utf8mb4_0900_ai_ciの部分は何ですか 意味?

    3 bytes -- utf8
    4 bytes -- utf8mb4 (new)
    
    v4.0 --   _unicode_
    v5.20 --  _unicode_520_
    v9.0 --   _0900_ (new)
    
    _bin      -- just compare the bits; don't consider case folding, accents, etc
    _ci       -- explicitly case insensitive (A=a) and implicitly accent insensitive (a=á)
    _ai_ci    -- explicitly case insensitive and accent insensitive
    _as (etc) -- accent-sensitive (etc)
    
    _bin         -- simple, fast
    _general_ci  -- fails to compare multiletters; eg ss=ß, somewhat fast
    ...          -- slower
    _0900_       -- (8.0) much faster because of a rewrite
    

    詳細:



    1. MariaDB JSON_REPLACE()の説明

    2. PostgreSQLVALUESコマンドの説明

    3. 複合主キーを外部キーとして使用する

    4. MySQL Workbenchチュートリアル–RDBMSツールの包括的なガイド