mysql 字段長度 字符 字節


在創建表的時候,給字段定義完類型之后,緊接着需要指定字段的長度,比如:varchar(20),biginit(20)等。那么問題來了,varchar代表的是字節長度,還是字符長度呢?

create table test_varchar(a varchar(20));
insert into test_varchar values('蘇三說技術');
select length(a),CHARACTER_LENGTH(a) from test_varchar;

執行后的結果:

 

我們看到中文的5個字length函數統計后長度為15,代表占用了15個字節,而使用charcter_length函數統計長度是5,代表有5個字符。所以varchar代表的是字符長度,因為有些復雜的字符或者中文,一個字節表示不了,utf8編碼格式的一個中文漢字占用3個字節。不同的數據庫編碼格式,占用不同的字節數對照表如下:

 

 

mysql除了varchar和char是代表字符長度之外,其余的類型都是代表字節長度。

int(n) 這個n表示什么意思呢?從一個列子出發:

ZEROFILL表示長度不夠填充0

執行結果:

 

 mysql常用數字類型字段占用字節數對照表:

 

 

從表中可以看出bigint實際長度是8個字節,但是我們定義的a顯示4個字節,所以在不滿4個字節時前面填充0。滿了4個字節時,按照實際的長度顯示,比如:123456。但是,需要注意的是,有些mysql客戶端即使滿了4個字節,也可能只顯示4個字節的內容,比如顯示:1234。

所以bigint(4),這里的4表示顯示的長度為4個字節,實際長度還是8個字節。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM