mysql資料庫漢字到底佔幾個位元組

時間 2021-08-14 14:40:38

1樓:娛樂小八卦啊

一個漢字佔多少長度與編碼有關:

若採用utf-8編碼,則一個漢字=3個位元組。

若採用gbk編碼,則一個漢字=2個位元組。

專案中oracle10g資料庫表欄位為varchar(n)型別,存英文很簡單,只要字母個數不大於n即可。但是對於漢字,按照同樣的方法就不行了。因為對於漢字不同的字符集,在資料庫佔用的位元組是不一樣的。

比如varchar(10)型別的欄位,utf-8的漢字,只能存3個,gbk字符集的漢字卻能存5個。所以在程式中根據表欄位varchar的大小,儲存或更新時作出必要的校驗否則後臺會報錯。

對於一個**、論壇來說,如果英文字元較多,則建議使用utf-8節省空間。不過現在很多論壇的外掛一般只支援gbk。

gb2312是gbk的子集,gbk是gb18030的子集

gbk是包括中日韓字元的大字符集合

擴充套件資料

字元最終是以二進位制形式儲存在磁碟的,這也是為什麼要有字元編碼的原因,因為計算機最終都要以二進位制形式儲存,那麼編碼規則就是用什麼樣的二進位制來代表這個字元。

例如,ascii碼錶中,01000011這個二進位制對應的十進位制是67,它代表的就是英語字母c。準確概述來說,字元編碼方式是用一個或多個位元組的二進位制形式表示字符集中的一個字元。

每種字符集都有自己特有的編碼方式,因此同一個字元,在不同字符集的編碼方式下,可能會產生不同的二進位制形式。

另外,字符集合只是指定了一個集合中有哪些字元,而字元編碼,是為這個集合中所有字元定義相關編號,而字符集(注意與字符集合的區別)是字元和集合與編碼規則的混合體,這也是有時候編碼方案代表字符集的原因。

2樓:匿名使用者

這個看你用什麼字符集,

如果是gbk,一個漢字佔2個位元組

如果是utf-8,一個漢字佔3個位元組

一般mysql,用的是utf-8,不過這個最好看一下。

3樓:匿名使用者

適用mysql 5.0以上版本:

1.一個漢字佔多少長度與編碼有關:

utf-8:一個漢字=3個位元組

gbk:一個漢字=2個位元組

2.在mysql中 varchar(n)和char(n)表示n個字元,無論漢字和英文,mysql都能存入n個字元,僅是實際位元組長度有所區別

即 mysql 並不會對超過長度的字元報錯,而是直接截斷了。並且 char(2) 和 varchar(2) 都能儲存 2個漢字,或者是兩個英文字元。

3. mysql 的 char(n) 和varchar(n) 可以直接儲存 n 個漢字. 而不是 n/3或者 n/2 個,mysql 遮蔽了具體的儲存細節,而直接以實際字元的個數來決定char儲存的個數。

mysql 資料庫varchar可以儲存多少個漢字和多少個數字?

MYSQL資料庫update select把表中的資料

妞兒媽媽 1 update b,a set num3 a.num1 a.num2where b.name1 a.name2。2 update 表a set name select id from 表b where 表b.name 表a.name 3 有兩個表,table1,table2 table1...

mysql資料庫備份

我暑假自學的,看能不能幫上忙。windowsxp下,估計也沒什麼用,但希望對你有所啟發 用mysqldump備份 first 資料庫,customer1 表,你的密碼 mysqldump first customer c backup customer1.sql uroot p mysqldump ...

mysql資料庫怎樣建立表,MYsql資料庫怎樣建立表?

歐覓潘安然 比如要建立學生表表名為student,學生表有欄位學號 no 年齡 age create table student no int primary key 主鍵 age int 執行下就建立好了 隨便舉的例子,明白吧?謝謝採納! create database cookbook 建立一個...