本文帶給大家MySQL字符集是什麼?字符集的相關介紹。有一定的參考價值,有需要的朋友可以參考一下,希望對你們有幫助。
字元集介紹
#gbk/gb2312
#gbk/gb2312
採用雙位元組字元集,不論中、英文字元皆使用雙字元來表示,為了區分中文,將其最高位元都設定成1
gb2312是gbk的子集,gbk是gb18030的子集,gb2312只能儲存簡體中文字元
gbk包含中日韓字元的大字元集
通常使用gbk字元集足夠
國際通用性比utf8差,不過utf8佔用的資料庫比gbk大(utf8是三位元組字元集)
utf8/utf8mb4
UTF全名(Unicode Transformation Format),是Unicode的一種儲存方式,可變長度字元編碼,又稱萬國碼;
資料庫字元集盡量使用utf8(包括connect、result、及最終html頁面都必須要求一致為utf8);
UTF8使用可變長度位元組來存儲Unicode字符,例如ASCII字母繼續使用1個字節存儲,重音文字、希臘字母、或西里爾字母等使用2個字節來存儲,而常用的漢字就要用3個位元組;也就是一個英文字元等於一個位元組,一個中文(含繁體)等於三個位元組。
utf8mb4一個字元最多能存4字節,所以能支援更多的字元集;專案中常用utf8mb4存放emoji表情;
latin1是8bit (1 bytes)字元集,但不能覆蓋亞洲、非洲語言;
unidoce是latin1的擴展,增加了亞洲、非洲常規語言支持,但仍不支持全部語言,且ASCII用unidoce來表示效率不高(小字符集轉換成大字符集,往往便隨的就是字元的遺失);
utf8是unicode的擴充;
gbk、gb2312等字元集與utf8之間都必須透過Unicode編碼才能相互轉換。
字元集使用建議
#1、非常肯定只有中文終端使用者時,可選擇gbk / gb2312
2、為了方便資料遷移、以及多種終端展示,最好是utf8
3、字元無需區分大小寫時,採用預設的xx_ci校驗集可以,否則選擇xx_bin校驗集(生產環境中,盡量不要修改校驗集)
4、預設字元集是latin1,該字元集存放漢字是分開存放,以至於檢索結果時不夠精確,好處就是節省空間,不建議使用
MySQL字元集範圍
#伺服器層(server) > 資料庫成(database) > ; 資料表(table) > 欄位(column) > 連接(connection) | 結果集(result)
MySQL字元集優先權
char型別
char(N):N代表的是字元數(也叫字元長度)、而非bytes# char(N):是固定長存儲,佔用定長的存儲空間,不足的部分用空格填充;MySQL處理char(N)類型時,需要將空格strip掉後return。 儲存空間:char(N)類型的儲存空間和字元集有關係,結合剛才字元集的知識點,一個中文在utf8字元集中佔用3個bytes、gbk佔用2個bytes、數字和字符統一用一個字元表示。
儲存機制:在不夠N長度時,MySQL在儲存資料時,需要用填滿特殊的空格,而非十六進位的20
思考:
gbk: 可以存放30個位元組佔用的空間30*2utf8:可以存放30個位元組佔用的空間30*3
#########varcahr類型############varchar(N):N代表的是字元個數(也叫字元長度)、而非bytes## #varchar(N):是變長儲存,僅使用必要的儲存空間.######儲存空間:varchar(N)類型的儲存空間和字元集有關係,結合剛才字元集的知識點,一個中文在utf8字元集中佔用3個bytes、gbk統一佔用2個bytes、數字和字元一個字元表示。 ###儲存機制:varchar(N)欄位儲存實際上是從第二個位元組開始儲存,然後用1到2個位元組表示實際長度,剩下的才是可以儲存資料的範圍,因此最大可用存儲範圍是65535-3=65532位元組;第一個位元組標識是否為空.(長度小於255位元組,使用一個位元組來表示長度;大於255位元組使用兩個位元組來表示長度)
修改資料庫實例字元集
暫時生效
mysql> set character_set = 'gbk'; mysql> set character_set_client = 'gbk';
全域生效
mysql> set global character_set_client = 'gbk'; Query OK, 0 rows affected (0.00 sec)
永遠生效
vim /etc/my.cnf character-set-server=utf8
總結:以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。更多相關教學請造訪mysql資料庫圖文教學 ,MySQL影片教學,bootstrap影片教學!
以上是MySQL字符集是什麼?字符集的相關介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!