與MSSQL對比學習MYSQL的心得

germo發表於2021-09-09

我們先來看看整數型資料型別的寬度範圍


建立一個表


複製程式碼 程式碼如下:
CREATE TABLE tb_emp( id BIGINT(1))


id欄位的資料型別為BIGINT(1),注意到後面的數字1,這表示的是該資料型別指定的顯示寬度,指定能夠顯示的數值中數字的個數。

例如,假設宣告一個INT型別的欄位 YEAR INT(4)

該宣告指明,在year欄位中的資料一般只顯示4位數字的寬度。

在SQLSERVER裡是會報錯的


複製程式碼 程式碼如下:
CREATE TABLE abc
(id INT(11))



複製程式碼 程式碼如下:
訊息 2716,級別 16,狀態 1,第 1 行
第 1 個列、引數或變數: 不能對資料型別 int 指定列寬。


顯示寬度和資料型別的取值範圍是無關的。顯示寬度只是指明MYSQL最大可能顯示的數字個數,數值的位數小於指定的寬度時會有空格填充

如果插入了大於顯示寬度的值,只要該值不超過該型別整數的取值範圍,數值依然可以插入,而且能顯示出來。

例如,向year欄位插入一個數值19999,當使用select查詢的時候,MYSQL顯示的將是完整帶有5位數字的19999,而不是4位數字的值

如果不指定顯示寬度,則MYSQL為每一種型別指定預設的寬度值

tips:顯示寬度只用於顯示,並不能限制取值範圍和佔用空間,例如:INT(3)會佔用4個位元組的儲存空間,並且允許的最大值也不會是999,而是INT整型所允許的最大值。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1868/viewspace-2805822/,如需轉載,請註明出處,否則將追究法律責任。

相關文章