您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“MySQL校對規則怎么使用”,內容詳細,步驟清晰,細節處理妥當,希望這篇“MySQL校對規則怎么使用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
兩個不同的字符集不能有相同的校對規則。
每個字符集有一個默認校對規則。例如:
utf8mb4默認校對規則:utf8mb4_general_ci。
utf8默認校對規則:utf8_general_ci。
存在校對規則命名約定:它們以其相關的字符集名開始,通常包括一個語言名,并且以_ci(大小寫不敏感)、_cs(大小寫敏感)或_bin(二進制,大小寫敏感)結束。
utf8mb4_general_ci
utf8mb4_unicode_ci
utf8mb4_general_cs
utf8mb4_bin
//不存在utf8_unicode_cs
查看支持的校驗規則
mysql> SHOW COLLATION like 'utf8%'; +--------------------------+---------+-----+---------+----------+---------+ | Collation | Charset | Id | Default | Compiled | Sortlen | +--------------------------+---------+-----+---------+----------+---------+ | utf8_general_ci | utf8 | 33 | Yes | Yes | 1 | | utf8_bin | utf8 | 83 | | Yes | 1 | | utf8_unicode_ci | utf8 | 192 | | Yes | 8 | ... | utf8mb4_general_ci | utf8mb4 | 45 | Yes | Yes | 1 | | utf8mb4_bin | utf8mb4 | 46 | | Yes | 1 | | utf8mb4_unicode_ci | utf8mb4 | 224 | | Yes | 8 | | utf8mb4_icelandic_ci | utf8mb4 | 225 | | Yes | 8 |
查看本地的校驗規則
mysql> show global variables like '%coll%'; +----------------------+--------------------+ | Variable_name | Value | +----------------------+--------------------+ | collation_connection | utf8mb4_unicode_ci | | collation_database | utf8mb4_unicode_ci | | collation_server | utf8mb4_unicode_ci | +----------------------+--------------------+
修改數據庫配置后,不會對已經存在的表造成影響,如要生效需要修改特定列的排序規則。優先級:列>表>數據庫>服務器。
對已存在的表修改
# 修改數據庫: ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin; # 修改表: ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; # 修改表字段: ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL ;
創建表時指定
CREATE TABLE `T` ( `name` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
utf8_general_ci 與 utf8_unicode_ci區別
項 | utf8mb4_unicode_ci | utf8mb4_general_ci | 總結 |
準確性 | 基于標準的Unicode來排序和比較,能夠在各種語言之間精確排序 | 沒有實現Unicode排序規則,在遇到某些特殊語言或字符時,排序結果可能不是所期望的。 | 絕大多數情況下,特殊字符的順序不需要那么精確。 |
性能 | 在特殊情況下,Unicode排序規則為了能夠處理特殊字符的情況,實現了略微復雜的排序算法。 | 在比較和排序的時候更快 | 絕大多數情況下,不會發生此類復雜比較。 |
讀到這里,這篇“MySQL校對規則怎么使用”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。