整數類型
字節
取值范圍
取值范圍
tinyint
1
有符號 -128
無符號 0
有符號 127
無符號 255
smallint
2
有符號 -32768
無符號 0
有符號 32767
無符號65535
mediumint
3
有符號 -8388608
無符號 0
有符號 8388607
無符號1677215
int,integer
4
有符號 -2147483648
無符號 0
有符號 2147483647
無符號 4294967295
bigint
8
有符號 -263
無符號 0
有符號 263-1
無符號264-1
(1)、如何選擇整數類型
整數類型和浮點數類型最大的區別在於能否表達小數。那麼我們的整數是不能表達小數的,而浮點卻可以,
不同的整數類型取值范圍不一樣,tinyint類型取值范圍0~255,如果字段不超過255。那麼選擇tinyint就足夠了,bigint取值范圍最大,常用的都是int類型。
浮點數類型
字節
負數的取值范圍
非負數得取值范圍
float 單精度
4
-3.402823466E+38~
-1.175494351E-38
0和1.175494351E-38~
3.402823466E+38
double 雙精度
8
-1.7976931348623157E+308~
-2.2250738585072014E-308
0和2.2250738585072014E-308~1.7976931348623157E
定點類型
字節
描述
decimal(m,d)
M+2
最大取值范圍與double相同,給定decimal的有效取值范圍由M和D決定
(2)、如何選擇浮點數類型和定點數類型
double比float類型的精度比要高,那麼如果需要精確到小數點10位以上,那麼我們就用float類型,普通用float類型就夠了。
在Mysql中,定點數的精度比浮點要高,而且,浮點數會出現誤差,如果要對數據的精度要求比較高的話,那麼應該選擇定點數。
日期和時間類型
字節
最小值
最大值
Date 年月日
4
1000-01-01
9999-12-31
Datetime 年月日 時分秒
8
1000-01-01 00:00:00
9999-12-31 23:59:59
Timestamp 時區對應時間
4
19700101080001
20380119111407
Time 單獨表示時間
3
-838:59:59
838:59:59
Year 單獨表示年
1
1901
2155
(4)如何選擇時間和日期類型
year類型只表示年份,如果單單只記錄年份那麼選擇year就OK,還可以節約空間,
time類型只表示時間,如果只需要記錄時間那麼只選擇time類型,
date類型只表示年月日,如果只需要記錄年月日,那麼只選擇date類型
如果既需要記錄年月日和時間,可以選擇datetime類型和timestamp類型,
datetime類型表示的時間范圍比timestamp的類型要大,因此,需要時間范圍比較大的選擇datetime類型比較合適,
timestamp類型的時間是根據時區來選擇的,如果需要顯示的時間與時區對應,那麼選擇timestamp類型。
字符串類型
字節
描述
char(m)
M
M為0-255之間的整數
varchar(m)
M為0-65535之間的整數,值的長度為+1個字節
tinytext
允許長度0-255字節,值為長度+2個字節
text
允許長度0-65535字節,值為長度+2個字節
mediumtext
允許長度0~167772150字節 值為長度+3個字節
longtext
允許長度0~4294967295字節 值為長度+4個字節
char(5) 比如這行實際只用了3個字節,但是還占用5個字節的空間,
varchar(5) 比如這行實際只用了3個字節,它就只是占用了3個字節的長度
Text類型石一種特殊的文字串類型,text只有保存字符數據,比如:新聞內容等。
Text包含了(tinytext mediumtext,langtext)
binary(10)
varbinary(20)
存儲普通二進制字符類串型.兩者區別和char varchar一樣,一個占用實際字節,一個占用分配固定字節。
(6)、text類型和blob類型
text類型與blob類型很類似,text只能存儲字符數據,純文本之類的。選擇text類型
blob 類型可以存儲二進制數據,可以存儲圖片pdf等的二進制數據,選擇blob類型
enum 取值范圍0~65535
set 取值范圍0~64
(5)、enum 類型和set類型
Enum類型可以有65535個成員,而set類型最多只能包含64個成員,兩者取值范圍只能在成員列表中選取,enum類型只能從成員當中選擇一個,而set 類型可以選擇多個,
enum用法:那麼對於多個值當中選取一個的話,可以選擇enum類型,比如,性別(男女)二選一
set 類型用法:比如個人愛好,可以選擇多個,那麼這個使用我們用set類型