整數型別
位元組 取值範圍
取值範圍
tinyint
有符號 -128
無符號 0
有符號 127
無符號 255
smallint
有符號 -32768
無符號 0
有符號 32767
無符號65535
mediumint
有符號 -8388608
無符號 0
有符號 8388607
無符號1677215
int,integer
有符號 -2147483648
無符號 0
有符號 2147483647
無符號 4294967295
bigint
有符號 -263
無符號 0
有符號 263-1
無符號264-1
(1)、如何選擇整數型別
整數型別和浮點數型別最大的區別在於能否表達小數。那麼我們的整數是不能表達小數的,而浮點卻可以,
不同的整數型別取值範圍不一樣,tinyint型別取值範圍0~255,如果欄位不超過255。那麼選擇tinyint就足夠了,bigint取值範圍最大,常用的都是int型別。
浮點數型別
位元組 負數的取值範圍
非負數得取值範圍
float 單精度
-3.402823466e+38~
-1.175494351e-38
0和1.175494351e-38~
3.402823466e+38
double 雙精度
-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 年月日
1000-01-01
9999-12-31
datetime 年月日 時分秒
1000-01-01 00:00:00
9999-12-31 23:59:59
timestamp 時區對應時間
time 單獨表示時間
-838:59:59
838:59:59
year 單獨表示年
(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型別
06 MySQL的資料型別
定點數的位數更加長 使用方式 char 與 varchar 型別的區別 字串 浮點型等都可以隨意指定大小,那麼是不是平時操作的時候隨意指定乙個就可以呢?答 不是,資料型別並不是越大越好,越大的型別會造成資料臃腫,儲存空間占用過大,資料檢索也會變慢 多選一的時候使用的一種資料型別 在前端使用單選框的時...
mysql 日期減法 MySQL資料型別
資料庫中每個欄位都有適當的資料型別,用於限制或允許該字段中儲存的資料。mysql中支援三種資料型別 數值型 字串型 日期和時間型。不同的資料型別提供不同的取值範圍,可以儲存的值範圍越大,所需的儲存空間也會越大。因此應根據實際需要選擇最合適的型別,這樣有利於提高查詢的效率和節省儲存空間。數值型分為整數...
MySQL資料型別 日期時間
日談健康 2017 01 18 00 31 一 部落格前言 自接觸學習mysql已有一段時間了,對於mysql的基礎知識還是有一定的了解的。在這一路學習過來,每次不管看書還是網上看的資料,對於mysql資料型別中的時間日期型別總是一掃而過,不曾停下來認認真真的研究學習。最近在圖書館借了一本關於mys...