MySQL数据类型

8 阅读2分钟

一,整数类型

tinyint(m)1个字节 范围(-128~127)用在性别,状态较多(0,1)
smallint(m)2个字节范围(-32768~32767)
mediumint(m)3个字节范围(-8388608~8388607)
int(m)4个字节范围(-2147483648~2147483647)多用在序号
bigint(m)8个字节范围(+-9.22*10的18次方)

数值类型的长度m是指显示长度,不是存储长度,只有字段zerofill时有用

如: int(3),如时值是2,列指定了zerofill,查询结果是002,左边用0填充。

二.浮点类型

folat(m,d)单精度浮点型8位精度(4字节)m总个数,d小数位
double(m,d)双精度浮点型16位精度(8字节)m总个数,d小数位

一定要赋值,m是总个数,d小数位

三,字符类型

char(n)固定长度,最多255个字符
tinytext可变长度,最多255个字符
varchar(n)可变长度,最多65535个字符
text可变长度,最多65535个字符
mediumtext可变长度,最多2的24次方-1个字符
longtext可变长度,最多2的32次方-1个字符

char和varchar:

1.char长度固定,即每条数据占用等长字节空间;适合用在身份证号码、手机号码等定长。

2.varchar可变长度,可以设置最大长度;适合用在长度可变的属性。

3.text不设置长度,当不知道属性的最大长度时,适合用text。

4.按照查询速度:char最快,varchar次之,text最慢。 字符串型使用建议:

1.经常变化的字段用varchar

2.知道固定长度的用char

3.尽量用varchar

4.超过255字符的只能用varchar或者text

5.能用varchar的地方不用text

四,日期类型

date日期 YYYY-MM-DD
time时间HH:MM:SS
datetime日期时间YYYY-MM-DD HH:MM:SS
timestamp时间戳YYYYMMDD HHMMSS

五.二进制数据(BLOB)

1.BLOB和TEXT存储方式不同,TEXT以文本方式存储,英文存储区分大小写,而Blob是以二进制方式存储,不分大小写。

2.BLOB存储的数据只能整体读出。

3.TEXT可以指定字符集,BLOB不用指定字符集。