在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
mysql資料庫資料型別
1 數值型別 類 型大 小 範圍 有符號 範圍 無符號 用 途tinyint 1 位元組 128 127 0 255 微小整數 smallint 2 位元組 32768 32767 0 65535 小整數mediumint 3 位元組 223 223 1 0 2 24 1 中整數int 4 位元組 ...
資料庫中資料型別
1.整型 整型選取原則 第一 要滿足欄位的表示範圍 第二 盡量選擇占用空間小的資料型別 第三 如果不儲存負數,盡量新增unsigned屬性 2.浮點型 整型選取原則 第一 要滿足欄位的表示範圍 第二 盡量選擇占用空間小的資料型別 第三 能選取整型的不選取float型。3.字元型 char和varch...
資料庫中的資料型別
資料庫中的資料型別通常有很多種,也有不同的分類方法。例如最常見的數值型 字元型 日期時間型,也有不太常見的布林型 列舉型 集合型等。要在dbms中實現某種具體資料型別 例如最簡單的integer 的支援,我們可以從以下幾個方面來考慮。1.資料型別的名稱 資料型別名稱可以出現在ddl語句中,也可以出現...