MySQL數據庫中幾種數據類型的長度


在MySQL里新建表自然會涉及設置字段長度,但有時會發現長度限制在一些字段類型中不起作用?字段長度是按字節算還是字符算?

如圖中:int看起來只要還在本身類型取值范圍內就行,字段長度沒有起到作用;而char確實被限制在了5個字符中,甚至不是字節。

背后玄機在於不同數據類型的規則不同。

1、整數類型

這里的寬度和數據類型的取值是沒有關系的,顯示寬度只指明Mysql最大可能顯示的數字個數,數值的位數小於指定的寬度時會由空格填充;如果插入了大於顯示寬度的值,只要該值不超過該類型的取值范圍,數值依然可以插入,而且能夠顯示出來。

例如int整型只要數值在-2147483648~2147483647之間,不會出問題,連警告都沒有

若不設置字段長度,系統會默認tinyint(4),smallint(6),mediumint(9),int(11),bigint(20),也就是他們的取值范圍。

2、字符型

寬度就有用了,確確實實限制了無論是char或者varchar,超出字段長度的內容將會丟失。當然,對於varchar設置255也不會浪費,畢竟是變長存儲

3、浮點

浮點就沒什么疑問了,按照他自己的規則來。這里是3個數,小數后2位,輸入超范圍就輸出最大的就完事了

 


免責聲明!

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



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