一、數值類型分類
MYSQL支援所有标準SQL中的數值類型,其中包括嚴格數值類型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似數值資料類型(FLOAT、REAL和DOUBLE PRECISON),并在此基礎上擴充增加了TINYINT、MEDIUMINT、BIGINT這三種整型,并增加了BIT類型,用來存放位資料
其中整數類型包括:TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)、BIGINT
浮點數類型包括:FLOAT、DOUBLE
定點數類型包括:DECIMAL(DEC)(M,D)
位類型包括:BIT(M)
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5CZhlTZzYWZ4MWMwYWO2MGZzUmZxgTMjNWZwYWYhhDNh9CXxAzLchDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL2M3Lc9CX6MHc0RHaiojIsJye.png)
補充:
BIT(M) 1-8位元組 最小值BIT(1) 最大值BIT(64)
二、整數類型
在整數類型中,一共分位5種(tinyint,smallint,mediuint,int,bigint),在設定整數數值類型時,要确定好取值範圍,選擇合适的數值類型,避免出現Out of range的情況,同時要加上數值的長度,int預設長度位11,int(11),可以和zerofill一起使用
create table t1 (id1 int);
alter table t1 modify id1 int zerofill;
insert into t1 values(1);
select * from t1;
id1
00000000001
如果插入大于寬度限制的值,不會影響資料的插入,但是數值的長度沒有意義。
所有的整數類型都有一個可選的屬性UNSIGEND(無符号),如果需要在字段裡面儲存非複數或者需要較大的上限值時,可以加入該字段,它的取值範圍為:下限取0,上限值取原值的兩倍。
整數類型的另一個屬性:AUTO_INCREMENT。在需要産生唯一辨別符或順序時,可利用此屬性。一般從1開始,每行增加1,NULL插入時也會自增,一個表中最多隻能有一個AUTO_INCREMENT。對于定義該屬性,應該同時定義為NOT NULL,并定義為PRIMARY KEY或定義UNIUQE鍵。
對于小數表示:mysql有兩種表示:浮點數和定點數,浮點數包括float(單精度)和double(雙精度),定點數隻有一種decimal表示。定點數在mysql中以字元串形式存放,比浮點數更精确,适合用來表示貨币等精度高的資料。