一、NUMBER类型
int 32位 2^32=4294967296 当注明属性UNSIGNED时,范围0~4294967295,否则范围-2147483648。
int(size)size为最大位数
smalint 16bit
mediumint 24bit
bigint 64bit
tinyint 8bit 其他同int,范围可算,也可规定(size)
float 32bit 精度极高,一般情况完全够用
double 64bit 这个就更不用说了
二、字串类型
char和varchar
char 是固定的,varchar 长度是可变的,举例说明
char(20) 在存储时必占20个字节,而varchar(20)则视具体情况而定,最多的时候可占20个字节,确切的说是21个字节,因为要多出一个字节存储实际使用长度,所以在长度比较灵活、多数时候用不满的情况下,varchar比较节省空间,而当每次倒要用到20个字节的时候varchar反而浪费了空间。
以上两个,当长度超过255个字符时,自动转换为TEXT存储。
tinytext和text,灵活、可变,前者最大长度255=2^8-1个字符,后者65535=2^16-1
mediumtext ,16777215=2^24-1
longtext , 4294967296=2^32-1
三、日期时间类型
date()
time()
datetime()
year()
四、枚举与集合类型
enum 枚举类型,数据存储时取值只能取其中一个,最多可存放 65535 个可能值,占1~2个字节。
set 集合类型,最多可以有64个成员,可以选择其中的零个到不限定的多个,占用存储空间是一个到八个字节,由集合可能的成员数目决定。
五、对象
MySQL中,BLOB是个类型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储文件的最大大小上不同。
MySQL的四种BLOB类型
类型 大小(单位:字节)
TinyBlob 最大 255
Blob 最大 65K
MediumBlob 最大 16M
LongBlob 最大 4G