標籤:style blog http color ar 使用 strong sp 資料
mysql的資料類型可以分為三大類,分別是數值資料類型、字串資料型別以及日期時間資料類型。
數值資料類型
數實值型別又可以分為整型、浮點類型、Decimal。
整型
mysql的整型可以分為TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,下表給出了每個類型的儲存空間大小和數值表示範圍。
類型 |
位元組 |
最小值 |
最大值 |
|
|
(帶符號的/無符號的) |
(帶符號的/無符號的) |
TINYINT |
1 |
-128 |
127 |
|
|
0 |
255 |
SMALLINT |
2 |
-32768 |
32767 |
|
|
0 |
65535 |
MEDIUMINT |
3 |
-8388608 |
8388607 |
|
|
0 |
16777215 |
INT |
4 |
-2147483648 |
2147483647 |
|
|
0 |
4294967295 |
BIGINT |
8 |
-9223372036854775808 |
9223372036854775807 |
|
|
0 |
18446744073709551615 |
浮點型
浮點型可以分為單精確度(FLOAT)和雙精確度(DOUBLE),它們可以儲存小數,但是儲存的是近似值,並不保證精確度。可以使用FLOAT(M,D)或DOUBLE(M,D)來指定浮點數的精度,這裡,“(M,D)”表示該值一共顯示M位整數,其中D位位於小數點後面。例如,定義為FLOAT(7,4)的一個列可以顯示為-999.9999。MySQL儲存值時進行四捨五入,因此如果在FLOAT(7,4)列插入入999.00009,近似結果是999.0001。
DECIMAL
DECIMAL和浮點數一樣,可以用來儲存小數,但是與浮點數的儲存近似值不同,DECIMAL儲存的是精確值,我們一樣可用DECIMAL(M, D)來指定精度,這裡的(M,D)同樣表示該值一共顯示M位整數,其中D位位於小數點後面。
浮點型 vs Decimal
雖然浮點型和Decimal都可以表示小數,但是Decimal可以精確表示,浮點型是近似表示,以下我們對這個不同舉一個例子:
可以看到decimal可以精確地表示我們的插入值,但是float卻無法精確表示。
字串型
mysql支援定長字串和變長字串兩種字串類型,定長字串用CHAR(M)表示,M 代表寬度, 0<=M<=255之間;變長字串用VARCHAR(M)表示,M代表寬度, 0<=M<=65535。定長字串的速度較變長字串的速度更快,但是如果儲存的字串長短不一的話,使用定長字串會造成空間浪費。
日期時間資料類型
mysql常用的日期時間資料類型有DATE、TIME、DATETIME三種類型,這三種類型的表示格式如下:
| 列類型 |
表示內容 |
| DATE |
YYYY-MM-DD |
| TIME |
hh:mm:ss |
| DATETIME |
YYYY-MM-DD hh:mm:ss |
MYSQL學習筆記——資料類型