mysql字符集排序规则_Mysql 字符集及排序规则
一、字符集
字符集:就是用來定義字符在數(shù)據(jù)庫中的編碼的集合。
常見的字符集:utf8、Unicode、GBK、GB2312(支持中文)、ASCCI(不支持中文)
二、字符集排序規(guī)則
作者本人用的是utf8_general_ci
后綴ci (case insensitive)意味不區(qū)分大小寫(大小寫不敏感),后綴cs (case sensitive)區(qū)分大小寫(大小寫敏感)
utf8_bin 規(guī)定每個字符串用二進(jìn)制編碼存儲,區(qū)分大小寫,可以直接存儲二進(jìn)制的內(nèi)容
如ci情況下:select name,age from userinfo; 等價于SELECT NAME,AgE FROM userinfo; 大小寫字符判斷是一樣的
而在cs情況下:假設(shè)字段名嚴(yán)格為name, age,表名:UserInfo。那么就必須:select name,age from UserInfo; 大小寫字符判斷有區(qū)分
而bin意思是二進(jìn)制,所以小寫u和大寫U會被區(qū)別
例如你運(yùn)行:
SELECT name FROM UserInfo WHERE name = 'Lina'
那么在utf8_bin中你就找不到 name = 'lina' 的那一行, 在utf8_general_ci 下可以.
1. utf8_general_ci 不區(qū)分大小寫,這個你在注冊用戶名和郵箱的時候就要使用。
2. utf8_general_cs 區(qū)分大小寫,如果用戶名和郵箱用這個 就會照成不良后果
3. utf8_bin:字符串每個字符串用二進(jìn)制數(shù)據(jù)編譯存儲。 區(qū)分大小寫,而且可以存二進(jìn)制的內(nèi)容
utf8_unicode_ci和utf8_general_ci對中、英文來說沒有實(shí)質(zhì)的差別。
utf8_general_ci校對速度快,但準(zhǔn)確度稍差。
utf8_unicode_ci準(zhǔn)確度高,但校對速度稍慢。
utf8_unicode_ci比較準(zhǔn)確,utf8_general_ci速度比較快。通常情況下 utf8_general_ci的準(zhǔn)確性就夠我們用的了,在我看過很多程序源碼后,發(fā)現(xiàn)它們大多數(shù)也用的是utf8_general_ci,所以新建數(shù)據(jù) 庫時一般選用utf8_general_ci就可以了
總結(jié):
排序規(guī)則,就是指字符比較時是否區(qū)分大小寫,以及是按照字符編碼進(jìn)行比較還是直接用二進(jìn)制數(shù)據(jù)比較。
總結(jié)
以上是生活随笔為你收集整理的mysql字符集排序规则_Mysql 字符集及排序规则的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode 701 二叉搜索树的插
- 下一篇: IK分词器使用