<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    zyskm用夢想丈量人生,用奔跑丈量激情

    mysql字符集和校對規(guī)則

    字符集的概念大家都清楚,校對規(guī)則很多人不了解,一般數(shù)據(jù)庫開發(fā)中也用不到這個概念,mysql在這方便貌似很先進,大概介紹一下。
    簡要說明
    字符集和校對規(guī)則
    字符集是一套符號和編碼。校對規(guī)則是在字符集內(nèi)用于比較字符的一套規(guī)則。
    MySql在collation提供較強的支持,oracel在這方面沒查到相應的資料。
    不同字符集有不同的校對規(guī)則,命名約定:以其相關(guān)的字符集名開始,通常包括一個語言名,并且以_ci(大小寫不敏感)、_cs(大小寫敏感)或_bin(二元)結(jié)束
    校對規(guī)則一般分為兩類:
    binary collation,二元法,直接比較字符的編碼,可以認為是區(qū)分大小寫的,因為字符集中'A'和'a'的編碼顯然不同。
    字符集_語言名,utf8默認校對規(guī)則是utf8_general_ci
    mysql字符集和校對規(guī)則有4個級別的默認設(shè)置:服務器級、數(shù)據(jù)庫級、表級和連接級。
    具體來說,我們系統(tǒng)使用的是utf8字符集,如果使用utf8_bin校對規(guī)則執(zhí)行sql查詢時區(qū)分大小寫,使用utf8_general_ci 不區(qū)分大小寫。不要使用utf8_unicode_ci。
    如create database demo CHARACTER SET utf8; 默認校對規(guī)則是utf8_general_ci 。
     
    Unicode與UTF8
    Unicode只是一個符號集,它只規(guī)定了符號的二進制代碼,卻沒有規(guī)定這個二進制代碼應該如何存儲.
    UTF8字符集是存儲Unicode數(shù)據(jù)的一種可選方法。 mysql同時支持另一種實現(xiàn)ucs2。

    詳細說明

    字符集(charset):是一套符號和編碼。
    校對規(guī)則(collation):是在字符集內(nèi)用于比較字符的一套規(guī)則,比如定義'A'<'B'這樣的關(guān)系的規(guī)則。不同collation可以實現(xiàn)不同的比較規(guī)則,如'A'='a'在有的規(guī)則中成立,而有的不成立;進而說,就是有的規(guī)則區(qū)分大小寫,而有的無視。
    每個字符集有一個或多個校對規(guī)則,并且每個校對規(guī)則只能屬于一個字符集。

    binary collation,二元法,直接比較字符的編碼,可以認為是區(qū)分大小寫的,因為字符集中'A'和'a'的編碼顯然不同。除此以外,還有更加復雜的比較規(guī)則,這些規(guī)則在簡單的二元法之上增加一些額外的規(guī)定,比較就更加復雜了。
    mysql5.1在字符集和校對規(guī)則的使用比其它大多數(shù)數(shù)據(jù)庫管理系統(tǒng)超前許多,可以在任何級別進行使用和設(shè)置,為了有效地使用這些功能,你需要了解哪些字符集和 校對規(guī)則是可用的,怎樣改變默認值,以及它們怎樣影響字符操作符和字符串函數(shù)的行為。

    校對規(guī)則一般有這些特征:

     兩個不同的字符集不能有相同的校對規(guī)則。
     每個字符集有一個默認校對規(guī)則。例如,utf8默認校對規(guī)則是utf8_general_ci。
     存在校對規(guī)則命名約定:它們以其相關(guān)的字符集名開始,通常包括一個語言名,并且以_ci(大小寫不敏感)、_cs(大小寫敏感)或_bin(二元)結(jié)束


    確定默認字符集和校對
     字符集和校對規(guī)則有4個級別的默認設(shè)置:服務器級、數(shù)據(jù)庫級、表級和連接級。
     數(shù)據(jù)庫字符集和校對
     每一個數(shù)據(jù)庫有一個數(shù)據(jù)庫字符集和一個數(shù)據(jù)庫校對規(guī)則,它不能夠為空。CREATE DATABASE和ALTER DATABASE語句有一個可選的子句來指定數(shù)據(jù)庫字符集和校對規(guī)則:
     例如:
     CREATE DATABASE db_name    DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
     MySQL這樣選擇數(shù)據(jù)庫字符集和數(shù)據(jù)庫校對規(guī)則:
    ·         如果指定了CHARACTER SET X和COLLATE Y,那么采用字符集X和校對規(guī)則Y。
    ·         如果指定了CHARACTER SET X而沒有指定COLLATE Y,那么采用CHARACTER SET X和CHARACTER SET X的默認校對規(guī)則。
    ·         否則,采用服務器字符集和服務器校對規(guī)則。
    在SQL語句中使用COLLATE
    •使用COLLATE子句,能夠為一個比較覆蓋任何默認校對規(guī)則。COLLATE可以用于多種SQL語句中。
    使用WHERE:
     select * from pro_product where product_code='ABcdefg' collate utf8_general_ci
    Unicode與UTF8
    Unicode只是一個符號集,它只規(guī)定了符號的二進制代碼,卻沒有規(guī)定這個二進制代碼應該如何存儲.Unicode碼可以采用UCS-2格式直接存儲.mysql支持ucs2字符集。
    UTF-8就是在互聯(lián)網(wǎng)上使用最廣的一種unicode的實現(xiàn)方式。其他實現(xiàn)方式還包括UTF-16和UTF-32,不過在互聯(lián)網(wǎng)上基本不用。
    UTF8字符集(轉(zhuǎn)換Unicode表示)是存儲Unicode數(shù)據(jù)的一種可選方法。它根據(jù) RFC 3629執(zhí)行。UTF8字符集的思想是不同Unicode字符采用變長字節(jié)序列編碼:
    ·         基本拉丁字母、數(shù)字和標點符號使用一個字節(jié)。
    ·         大多數(shù)的歐洲和中東手寫字母適合兩個字節(jié)序列:擴展的拉丁字母(包括發(fā)音符號、長音符號、重音符號、低音符號和其它音符)、西里爾字母、希臘語、亞美尼亞語、希伯來語、阿拉伯語、敘利亞語和其它語言。
    ·         韓語、中文和日本象形文字使用三個字節(jié)序列。

    posted on 2011-10-24 14:59 zyskm 閱讀(1814) 評論(3)  編輯  收藏

    評論

    # re: mysql字符集和校對規(guī)則 2011-10-24 15:32 發(fā)電機組

    感謝樓主辛勤,普及了知識,一直想學習數(shù)據(jù)庫方面的知識  回復  更多評論   

    # re: mysql字符集和校對規(guī)則 2011-10-25 08:23 tbw淘寶

    很有實用價值啊   回復  更多評論   

    # re: mysql字符集和校對規(guī)則[未登錄] 2013-04-09 10:00 Mark

    多謝牛主!!  回復  更多評論   


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 亚洲?v无码国产在丝袜线观看 | 亚洲AV第一页国产精品| 中文字幕亚洲综合久久男男| 亚洲日本乱码在线观看| 精品日韩亚洲AV无码| 国产精品高清视亚洲精品| 亚洲国产无线乱码在线观看| 皇色在线免费视频| 成年女人午夜毛片免费看| 亚洲av无码专区在线观看素人| 亚洲电影一区二区三区| 91精品免费在线观看| www亚洲精品少妇裸乳一区二区| 香蕉视频亚洲一级| 亚洲视频免费播放| 亚洲中文字幕无码专区| 精品无码专区亚洲| 亚洲精品乱码久久久久久不卡| 亚洲七久久之综合七久久| 少妇无码一区二区三区免费| 毛片免费观看的视频在线| 国产精品亚洲va在线观看| 最近免费视频中文字幕大全| 国产亚洲精品a在线观看app| 亚洲丰满熟女一区二区哦| 亚洲精品线路一在线观看| 四虎影视在线影院在线观看免费视频 | 亚洲色偷偷偷网站色偷一区| 成人免费av一区二区三区| 成人一a毛片免费视频| 亚洲视频在线一区| 黄色网页在线免费观看| 亚洲人成电影在在线观看网色| 毛片高清视频在线看免费观看| 亚洲国产精品国自产拍电影| 成人在线免费观看| 在线观看免费播放av片| 亚洲精品国产综合久久一线| 日韩精品极品视频在线观看免费| 久久精品亚洲日本佐佐木明希| 日本免费A级毛一片|