前言:
要了解数据库,必须了解支持的数据类型。 MySQL支持许多字段类型,其中有很多常用的字段类型。 上一篇文章也介绍了int和varchar类型的使用方法,但没有全面介绍字段类型。 本文涵盖了字段类型,并介绍了常见字段类型的使用方法。
常用的字段类型大致分为3358www.Sina.com/、数值类型、3358www.Sina.com/三种,按分类顺序介绍。
1 .数值类型数值类型的大分类又可分为字符串类型、日期时间类型、整型三种。
整数类型主要用于存储整数值,主要有以下字段类型:
整数类型常用于tinyint、int、bigint等。 缺省值是有符号的,但如果只存储无符号值,则可以增加无符号属性。
int(m )中的m表示最大显示宽度,int )并不表示无法存储数值10。 无论显示宽度设置为多少个字符,int都将占用4个字节。 也就是说,int )5)和int ) 10 )可以存储的范围相同。
字节数越小,占用空间越小。 因此,必须根据最小化存储的原则,尽量选择合适的整数。 例如,可以使用tinyint保存一些状态值和人的年龄。 主键列,没有负数。 建议未指定或未指定。 字段的数值预计将超过42亿,使用bigint型。
浮点型主要有float、double两种,浮点型在数据库中存储近似值,例如float (6,3 ),插入一个数123.45678后,实际的数据库中存储了123.457,但总个数浮点和双精度平时很少使用。
定点型字段类型是DECIMAL之一,主要用于存储要求精度的小数。
DECIMAL是从MySQL 5.1引入的,列的声明语法是decimal(m,d )。 NUMERIC与DECIMAL同义,如果字段类型定义为NUMERIC,则自动转换为DECIMAL。
声明语法decimal(m,d )参数的值范围如下:
m是最大位数(精度),范围为1到65。 不,默认值为10。 d是小数点右侧的位数(小数点后的位数)。 范围为0到30,不能大于m。 请不要指定。 默认值为0。 例如,字段salary decimal (5,2 )可以存储具有5位数字和2位小数的任何值,因此可以存储在salary列中的值的范围从-999.99到999.99。
2 .字符串型字符串型也经常使用。 常用的几种类型如下表所示。
其中char和varchar是最常用的。 char类型为固定长度,MySQL始终根据定义的字符串长度分配足够的空间。 保存char值时,在右侧填充空格,使其达到指定长度,获得char值后删除末尾的空格。 varchar类型用于存储可变长度字符串,即使字符未达到定义的位数,以后也不会添加空格。
Char(m )和varchar(M ) m表示要存储的最大字符数,单个字符、数字、中文等都占用一个字符。 char适用于存储短字符串或所有值都接近相同长度的情况。 例如,char最适合存储密码的MD5值。 因为这是固定长度的值。 如果字符串长或保存的字符串长度不同,varchar更适合。
定义字段的最大长度时,必须根据需要分配。 提前预测,如果可以使用varchar类型,则不要使用文本类型。 除非需要存储长文本数据,否则考虑使用文本类型。
BLOB类型主要用于存储二进制大对象,并且可以存储诸如图像、音频视频等的文件。 虽然日常很少使用,但在存储二进制字符串时请考虑使用。
3 .日期和时间类型MySQL支持的日期和时间类型为浮点型,定点型,YEAR,http://www.Sina.com
如果涉及日期和时间字段类型的选择,则可以根据存储需求选择适当的类型。
您可以根据存储需求确定如何选择两种类型: DATETIME和TIMESTAMP。 例如,如果要求存储范围很大,建议使用DATETIME;如果只存储当前时间戳,请使用TIMESTAMP类型。 但是,TIMESTAMP字段中的数据取决于系统的时区,而DATETIME字段中的数据保持不变。 一般来说,DATETIME的使用范围很广。
TIME
本文主要介绍MySQL中常用的字段类型。 平时使用的字段类型几乎都在这里。 用思维导图总结,如下所示。