mysql數據庫中數據類型的長度


在mysql中新建數據表的時候會有長度一說,其實用建表語句建數據表的時候也有涉及

例如:

CREATE TABLE user(

uid int(4),

name varchar(255),

passward varchar(20)

birthday data

)

不知道你有沒有注意這個數據類型后面的括號有什么玄機,今天看了《Mysql 5.6 從零開始學》這本書,算是把這個地方搞清楚了。

括號里的數字叫數據的寬度,我們不能一概而論,因為不同的數據類型對寬度的處理也不一樣:

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

例如上面的udi,顯示的寬度是4,但是我向uid中插入100001,也是可以的,保存和顯示的都會是100001

如果你不設置寬度,系統將添加默認的寬度 tinyint(4),smallint(6),mediumint(9),int(11),bigint(20),這些默認的寬度是跟該類型的取值范圍長度相關。

2、字符串類型,字符串類型這個寬度才真的用上了。不管是char還是varchar,寬度都定義了字符串的最大長度

例如上面的 password varchar(20),如果你輸入了一個21個字符的密碼,那么保存和顯示的只會是前20個字符,你將丟失一個字符信息,char同理。由於varchar是變長存儲的,所以實際開發中我們一般都把varchar的寬度設為最長255,反正你沒用完它也不會浪費空間。

3、浮點和日期等數據類型對數據的寬度沒有要求,一般也不設置,默認是0

https://blog.csdn.net/jisuanji12306/article/details/76387989

https://zhuanlan.zhihu.com/p/111028232?from_voters_page=true

原文鏈接:https://blog.csdn.net/ZBylant/article/details/86572567


免責聲明!

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



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