一、數值類型分類
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)
補充:
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中以字符串形式存放,比浮點數更精確,適合用來表示貨幣等精度高的數據。
小數都可以用類型名稱后加(M,D),M-精度:一共顯示M位(整數+小數)D-標度:保留小數點后D位,但是這種是非標准用法,建議不使用,建議使用默認精度,浮點數的默認值又實際的硬件和操作系統決定,decimal默認整數為10位,小數為0位。
插入小數時會按照實際精度值顯示,超入精度會四舍五入,不會報錯,而插入定點數。
BIT(位)類型:略