文章目錄
- 數據分類
- 數值類型
- tinyint類型
- 有符號類型測試
- 無符號類型測試
- bit類型
- 測試
- float類型
- 有符號測試
- 無符號測試
- decimal類型
- 測試
數據分類
數值類型
tinyint類型
說明:tinyint
有符號能存儲的范圍是-128-127,無符號能存儲的范圍是0~255
有符號類型測試
1.建表
2.插入測試
從測試中我們可以看到,數據只保留整數對小數采用四舍五入的方式,并且只能保存范圍內的數字,如果超出則不讓插入。
無符號類型測試
1.建表
2.插入測試
從上面的兩個示例中我們可以看出,如果插入數據超過范圍,MySQL直接攔截。
反過來如果我們已近有數據被成功插入到MySQL中了,那么我們的插入一定是合法的。
所以MySQL中,一般而言數據類型本身也是一種約束,倒逼程序員,讓程序員盡可能進行正確的插入。
約束是用來約束使用者的。
另外如果你不是一個很好的使用者,MySQL也能保證數據插入的合法性。就能保證數據庫中的數據是可預期,完整的。
MySQL表中建立屬性列:
列名稱在前,類型在后:
例如:num tinyint;
bit類型
使用方式bit(m)
說明:
bit是位類型,
m為指定的位數,如果寫m,默認為1,
m的范圍是1-64;
測試
1.建表
2.插入測試
我們可以看到,m如果為1插入的范圍是0-1,超出則不允許插入,那么為什么num沒有顯示出來呢?
因為bit字段在顯示時,是按照ASCII碼對應的值顯示。
當我們把它改為10進制的時候就可以顯示出來了。
3.測試總結
- a.num默認為ascll碼方式顯示
- b.可以用hex函數轉化為十進制
float類型
使用方式 :float(m,n)
說明:
m為指定顯示長度(包括小數,不包括小數點)
n為指定小數位數
如果定義的是float(4,2) unsigned 這時,因為把它指定為無符號的數,范圍是 0 ~ 99.99
也就是直接舍棄負數部分
有符號測試
1.建表
2.插入測試
3.根據測試總結
-
a.整數部分在四舍五入之后不能超過規定位數
-
b.小數部分,會按規定位數進行四舍五入的舍棄
-
c.有符號的,則表示范圍是-99.99 ~
99.99
無符號測試
1.建表
2.插入測試
3.總結
- a.無符號浮點數直接砍掉小數部分
- b.其余的與有符號浮點數一樣
decimal類型
使用方式 :float(m,n)
說明:
m為指定顯示長度(包括小數,不包括小數點)
n為指定小數位數
decimal和float很像,但是有區別:float和decimal表示的精度不一樣,float會有進度的損失而decimal可以很好的規避這個問題。
測試
1.建表
2.插入測試
我們可以看到精度確實損失了。
其余的與float類型一樣這里就不過多演示,