Mysql 字符集及排序規則


一、字符集
字符集:就是用來定義字符在數據庫中的編碼的集合。 常見的字符集:utf8、Unicode、GBK、GB2312(支持中文)、ASCCI(不支持中文)

 

二、字符集排序規則
  作者本人用的是 utf8_general_ci
  • 后綴ci (case insensitive)意味不區分大小寫(大小寫不敏感),后綴cs (case sensitive)區分大小寫(大小寫敏感)

  • utf8_bin 規定每個字符串用二進制編碼存儲,區分大小寫,可以直接存儲二進制的內容

  • ci情況下:select name,age from userinfo; 等價於SELECT NAME,AgE FROM userinfo; 大小寫字符判斷是一樣的

  • 而在cs情況下:假設字段名嚴格為name, age,表名:UserInfo。那么就必須:select name,age from UserInfo; 大小寫字符判斷有區分

  • 而bin意思是二進制,所以小寫u和大寫U會被區別
    例如你運行:
    SELECT name FROM UserInfo WHERE name = 'Lina'
    那么在utf8_bin中你就找不到 name = 'lina' 的那一行, 在utf8_general_ci 下可以.

1. utf8_general_ci 不區分大小寫,這個你在注冊用戶名和郵箱的時候就要使用。

2. utf8_general_cs 區分大小寫,如果用戶名和郵箱用這個 就會照成不良后果

3. utf8_bin:字符串每個字符串用二進制數據編譯存儲。 區分大小寫,而且可以存二進制的內容

utf8_unicode_ci和utf8_general_ci對中、英文來說沒有實質的差別。
utf8_general_ci校對速度快,但准確度稍差。
utf8_unicode_ci准確度高,但校對速度稍慢。
utf8_unicode_ci比較准確,utf8_general_ci速度比較快。通常情況下 utf8_general_ci的准確性就夠我們用的了,在我看過很多程序源碼后,發現它們大多數也用的是utf8_general_ci,所以新建數據 庫時一般選用utf8_general_ci就可以了

總結:
排序規則,就是指字符比較時是否區分大小寫,以及是按照字符編碼進行比較還是直接用二進制數據比較。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM