列的數(shù)據(jù)類型
一、數(shù)字?jǐn)?shù)據(jù)類型
1、整數(shù)類型
類型? 存儲空間/字節(jié) ? ? ? ? ? ? ? ? ? ? ? ? 有符號范圍 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 無符號范圍
tinyint ? ? ? ? 1 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? -128~127 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0~255
samllint ? ? ? 2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? -32768~32767 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0~65535
mediumint ? 3 ? ? ? ? ? ? ? ? ? ? ? ? ? ?? -8388608~8388607 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 0~16777215
int(integer) ? 4 ? ? ? ? ? ? ? ? ? ? ? -2147483648~2147483674 ? ? ? ? ? ? ? ? ? ? ? ? ? 0~4294976295
bigint ? ? ? ? ? 8 ?? -9223372036854775808~923372036854775807 ? 0~18446744073709551615
語法格式:int[(m)? [unsigned] ? [zerofill]]
(1)m,指定數(shù)據(jù)的顯示寬度。例int(5),當(dāng)數(shù)值寬度小于5位時(shí),在數(shù)字前填滿寬度,如不指定寬度,默認(rèn)位int(11)。
(2)[unsigned],指定數(shù)據(jù)為無符號數(shù)據(jù)
(3)[zerofill],在數(shù)字位數(shù)不夠時(shí)用0填充,一般配合unsigned使用
CREATE TABLE t1(
? id1? int,
? id2? int(5),
? id3? int ZEROFILL,
? id4? int(5)ZEROFILL
);
2、浮點(diǎn)數(shù)類型、定點(diǎn)數(shù)和位類型
浮點(diǎn)數(shù)類型
類型 ? ? ? ? ? ?? 存儲空間/字節(jié) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 范圍
float(m,d) ? ? ? ? ? ?? 4 ? ? ? ? ? ? ? ? ?? 1.175494351E-38 ? ? ? ? ? ? ? ? ? ?? 3.402823466E+38
double(m,d) ? ? ? ?? 8 ? ? ? ? ? ? ? ? ? ? 2.2250738585072014E-308 ? ? 1.7976931348623157E+308
m表示顯示的位數(shù),d表示小數(shù)點(diǎn)后的位數(shù),在不指定精度時(shí),默認(rèn)按照實(shí)際精度顯示。
范例:float(7,4) ? ? ? ? ? 999.9999
3、定點(diǎn)數(shù)類型(了解)
類型 ? ? ? ? ? ? ? ? ? ?? 存儲空間/字節(jié) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 描述
dec/decimal(m,d) ? ? ? ? ? M+2 ? ? ? ? 最大值與double相同,給定decimal的有效范圍由m,d決定
在不指定精度時(shí),整數(shù)位為10,小數(shù)位為0
4、位類型(了解)
類似與boolean,只有true和false,0和1
類型 ? ? ? ? ?? 存儲空間/字節(jié) ? ? ? ? ? ? 最小值 ? ? ? ? ?? 最大值
bit(m) ? ? ? ? ? ? ? ?? 1~8 ? ? ? ? ? ? ? ? ? ? ? bit(1) ? ? ? ? ? ? ? bit(8)
m的范圍為1-64,默認(rèn)值為1
二、日期和時(shí)間類型
類型 ? ? ? 存儲空間/字節(jié) ? ? 最小值 ? ? ? ? ? ? ? ? ? ? ? ? 最大值 ? ? ? ? ? ? ? ? ? ? ?? 說明
date ? ? ? ? ? ? ?? 4 ? ? ? ? ? ? ?? 1000-01-01 ? ? ? ? ? ? ? ?? 9999-12-31 ? ? ? ? ? ? ? 年月日yyyy-dd-mm
time ? ? ? ? ? ? ?? 8 ? ? ? ? ? 1000-01-01 00:00:00 ??9999-12-31 23:59:59 ? ?? 時(shí)分秒hh:mm:ss
datetime ? ? ? ? 4 ? ? ? ? ? ? 19700101080001 ? ? ? 2038年的某一時(shí)刻 ? ? ?? 年月日時(shí)分秒
timestamp ? ? ? 3 ? ? ? ? ? ? ?? -838:59:59 ? ? ? ? ? ??838:59:59 ? ? ? ? ? ? 用于更新當(dāng)前系統(tǒng)時(shí)間
year[2|4] ? ? ? ?? 1 ? ? ? ? ? ? ? ? ? 1901 ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2155 ? ? ? ? ? ? ? ? ? ? ? 年份
year默認(rèn)為四位,允許的值1901~2155和0000;兩位格式中,允許的值為70~69(1970~2069)
timestamp,是yyyy-mm-dd hh:mm:ss字符串。顯示寬度固定為19,如想獲得字符值,則需在前面添加0。
三、字符串類型
1、char和varchar
類型 ? ? ? ? ? ? 存儲空間/字節(jié) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 說明
char[(m)] ? ? ? ? ? ? ? m ? ? ? ? ? 固定長度的字符串?dāng)?shù)據(jù),長度為m字節(jié),m取值0~255
varchar[(m)] ? ?? 1~m+1 ? ? ? 可變長度的字符串?dāng)?shù)據(jù),長度為m字節(jié),m取值0~65535
char無論用戶輸入多少(<=m),長度均為m,varchar則為實(shí)際長度
2、text和blob字符串
類型 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 說明
tinytext ? ? ? ? ? ? ?? 允許長度0~255字節(jié),占用字符串長度+2字節(jié)
text ? ? ? ? ? ? ? ? ? ?? 允許長度0~65535字節(jié),占用字符串長度+2字節(jié)
mediumtext ? ? 允許長度0~167772150字節(jié),占用字符串長度+3字節(jié)
longtext ? ? ? ? ? 允許長度0~4294967295字節(jié),占用字符串長度+4字節(jié)
tinyblob ? ? ? ? ? ? ? ? 允許長度0~255字節(jié),占用字符串長度+2字節(jié)
blob ? ? ? ? ? ? ? ? ? ? 允許長度0~65535字節(jié),占用字符串長度+2字節(jié)
mediumblob ? ? ?? 允許長度0~167772150字節(jié),占用字符串長度+3字節(jié)
longblob ? ? ? 允許長度0~4294967295字節(jié),占用字符串長度+4字節(jié)
blob大文件類型,text大文本類型
3、binary字符串,二進(jìn)制數(shù)據(jù)類型
類型 ? ? ? ? 存儲空間/字節(jié) ? ? ? ? ? ?? 說明
binary[(m)] ? ? ? ?? m ? ? ? ?? 允許長度為0~m字節(jié)的定長字節(jié)字符串
varbinary[(m)] ? ? m ? ? ?? 允許長度為0~m字節(jié)的定長字節(jié)字符串,占用長度+1字節(jié)
4、enum和set字符串類型,存儲字符串對象
類型 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 存儲空間/字節(jié) ? ? ? ? ?
enum() ? ? ?? 1或2字節(jié),取決于枚舉值得個數(shù)(最多65535個值)
set() ? ? ? ? ?? 1/2/3/4/8字節(jié),取決于set成員的個數(shù)(最多64個成員)