MySQL中的常規字符集和校對

2021-09-01 22:34:36 字數 1094 閱讀 1311

[b][color=red][size=x-large]常規字符集和校對[/size][/color][/b]

[size=large]字符集是一套符號和編碼。校對規則是在字符集內用於比較字元的一套規則。讓我們使用乙個假想字符集的例子來區別清楚。

假設我們有乙個字母表使用了四個字母:『a』、『b』、『a』、『b』。我們為每個字母賦予乙個數值:『a』=0,『b』= 1,『a』= 2,『b』= 3。字母『a』是乙個符號,數字0是『a』的編碼,這四個字母和它們的編碼組合在一起是乙個字符集。

假設我們希望比較兩個字串的值:『a』和『b』。比較的最簡單的方法是查詢編碼:『a』為0,『b』為1。因為0 小於1,我們可以說『a』小於『b』。我們做的僅僅是在我們的字符集上應用了乙個 校對規則。校對規則是一套規則(在這種情況下僅僅是一套規則):「對編碼進行比較。」我們稱這種全部可能的規則中的最簡單的 校對規則為乙個binary(二元)校對規則。

但是,如果我們希望小寫字母和大寫字母是等價的,應該怎樣?那麼,我們將至少有兩個規則:(1)把小寫字母『a』和『b』視為與『a』和『b』等價;(2)然後比較編碼。我們稱這是乙個大小寫不敏感的 校對規則。比二元校對規則複雜一些。

在實際生活中,大多數字符集有許多字元:不僅僅是『a』和『b』,而是整個字母表,有時候有許多種字母表,或者乙個東方的使用上千個字元的書寫系統,還有許多特殊符號和標點符號。並且在實際生活中,大多數 校對規則有許多個規則:不僅僅是大小寫不敏感,還包括重音符不敏感(「重音符」 是附屬於乙個字母的符號,象德語的『ö』符號)和多位元組對映(例如,作為規則『ö』=『oe』就是兩個德語 校對規則的一種)。

mysql5.1能夠做這些事情:

· 使用多種字符集來儲存字串

· 使用多種校對規則來比較字串

· 在同一臺伺服器、同乙個資料庫或甚至在同乙個表中使用不同字符集或校對規則來混合字串

· 允許定義任何級別的字符集和校對規則

在這些方面,mysql5.1不僅比mysql4.1以前的版本靈活得多,而且比其它大多數資料庫管理系統超前許多。但是,為了有效地使用這些功能,你需要了解哪些字符集和 校對規則是可用的,怎樣改變預設值,以及它們怎樣影響字元操作符和字串函式的行為。[/size]

以上文字來自mysql官方文件.

[url]

MySQL 字符集和校對

字符集是指一種從二進位制編碼到某類字元符號的對映,校對是一組用於某個字符集的排序規則。每一類編碼字元都有其對應的字符集和校對規則 每種字符集都可能有多種校對規則,並且都有乙個預設的校對規則。每個校對規則都是針對某個特定的字符集的,和其他的字符集都沒有關係。校對規則和字符集總是一起使用的,我們也將這樣...

mysql字符集和校對規則 Mysql校對集

簡要說明 字符集和校對規則 字符集是一套符號和編碼。校對規則是在字符集內用於比較字元的一套規則。mysql在collation提供較強的支援,oracel在這方面沒查到相應的資料。校對規則一般分為兩類 binary collation,二元法,直接比較字元的編碼,可以認為是區分大小寫的,因為字符集中...

mysql字符集和校對規則 Mysql校對集

字符集的概念大家都清楚,校對規則很多人不了解,一般資料庫開發中也用不到這個概念,mysql在這方便貌似很先進,大概介紹一下 簡要說明 字符集和校對規則 字符集是一套符號和編碼。校對規則是在字符集內用於比較字元的一套規則。mysql在collation提供較強的支援,oracel在這方面沒查到相應的資...