MySQL字符集

MySQL的字符集有很多種,每種字符集都有可能有多種校對規則,每種字符集都有一個默認的校對規則。

只有基於字符的值才真正有字符集的概念,這些都是在進行相應的運算時體現出來,當然是在MySQL層面的比較。

MySQL字符集的設定選項有很多,但是採用的自上而下的繼承方式來影響數據庫。

創建數據庫時,根據character_set_server來影響創建數據庫時的默認字符集

創建表的時,將根據數據庫的字符集設置來指定表的默認字符集

創建列的時候,將根據表的字符集來設定列的默認字符集


當服務器和客戶端通信的時候,它們可能使用不同的字符集,這時,服務器端將進行必要的翻譯轉換工作。


服務器端總是假設客戶端是按照character_set_client的字符集來傳輸數據和sql語句。

服務器收到客戶端的SQL語句時,它先將其轉換成character_set_connection指定的字符集,並且使用這個設置來決定如何將數據轉換成字符串。

服務器返回數據或者錯誤信息給客戶端的時候,它會將其轉換成character_set_result指定的字符集。


根據需要,可以使用set names 或者set character set 語句來改變上面的設置。服務器端上使用這個命令只能改變服務器的設置,客戶端程序和客戶端API也需要使用正確

的字符集才能避免在通信時出現問題。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章