MySQL使用字符集和校對順序使用教程

使用字符集和校對順序

MySQL支持眾多的字符集。為查看所支持的字符集完整列表,使用以下語句:

輸入:

show?character?set;

分析:這條語句顯示所有可用的字符集以及每個字符集的描述和默認校對。

為了查看所支持校對的完整列表,使用以下語句:

輸入:

show?collation;

分析:此語句顯示所有可用的校對,以及它們適用的字符集??梢钥吹接械淖址哂胁恢挂环N校對。例如, latin1 對不同的歐洲語言有幾種校對,而且許多校對出現兩次,一次區分大小寫(由 _cs 表示),一次不區分大小寫(由 _ci 表示)。

通常系統管理在安裝時定義一個默認的字符集和校對。此外,也可以在創建數據庫時,指定默認的字符集和校對。為了確定所用的字符集和校對,可以使用以下語句:

輸入:

show?variables?like?'character%';  show?variables?like?'collation%';

實際上,字符集很少是服務器范圍(甚至數據庫范圍)的設置。不同的表,甚至不同的列都可能需要不同的字符集,而且兩者都可以在創建表時指定。

為了給表指定字符集和校對,可使用帶子句的 CREATE TABLE:

輸入:

create?table?mytable  (  columnn1???????int,  columnn2???????varchar(10)  )default?character?set?hebrew?collate?hebrew_general_ci;

分析:此語句創建一個包含兩列的表,并且指定一個字符集和一個校對順序。

這個例子中指定了 CHARACTER SET 和 COLLATE 兩者。一般,MySQL如下確定使用什么樣的字符集和校對。

1.如果指定 CHARACTER SET 和 COLLATE 兩者,則使用這些值。

2.如果只指定 CHARACTER SET ,則使用此字符集及其默認的校對(如SHOW CHARACTER SET 的結果中所示)。

3.如果既不指定 CHARACTER SET ,也不指定 COLLATE ,則使用數據庫默認。

除了能指定字符集和校對的表范圍外,MySQL還允許對每個列設置它們,如下所示:

輸入:

create?table?mytable  (  columnn1???????int,  columnn2???????varchar(10),  columnn3???????varchar(10)?character?set?latin1?collate?latin1_general_ci  latin_grneral_ci  )default?character?set?hebrew?collate?hebrew_general_ci;

分析:這里對整個表以及一個特定的列指定了 CHARACTER SET 和COLLATE 。

如前所述,校對在對用 ORDER BY子句檢索出來的數據排序時起重要的作用。如果你需要用與創建表時不同的校對順序排序特定的 SELECT 語句,可以在 SELECT 語句自身中進行:

輸入:

select?*?from?customers?order?by?lastname,firstname?collate?latin1_general_cs;

分析:此 SELECT 使用 COLLATE 指定一個備用的校對順序(在這個例子中,為區分大小寫的校對)。這顯然將會影響到結果排序的次序。

臨時區分大小寫 上面的 SELECT 語句演示了在通常不區分大小寫的表上進行區分大小寫搜索的一種技術。當然,反過來也是可以的。

SELECT 的其他 COLLATE 子句 除了這里看到的在 ORDER BY子句 中使用以外, COLLATE 還可以用于 GROUP BY 、 HAVING 、聚集函數、別名等。

最后,值得注意的是,如果絕對需要,串可以在字符集之間進行轉換。為此,使用 Cast() 或 Convert ()函數。

【相關推薦】

1. mysql免費視頻教程

2.?mysql免費視頻教程

3.?mysql免費視頻教程

4.?mysql免費視頻教程

5.?mysql免費視頻教程

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享