MySQL数据类型介绍
MySQL目前支持的数据类型主要有数值类型丶日期/时间类型和字符串类型。
- 数值类型:包括整数类型TINYINT丶SMALLINT丶MEDIUMINT丶INT丶BIGINT丶浮点小数类型(FLOAT丶DOUBLE)丶定点小数类型DECIMAL。
- 日期/时间类型:包括YEAR丶TIME丶DATE丶DATETIME和TIMESTAMP。
- 字符串类型:包括CHAR丶VARCHAR丶BINARY丶VARBINARY丶BLOB丶TEXT丶ENUM和SET。字符串类型分为两类文本字符串和二进制字符串。
整数类型
MySQL提供了多种数值数据类型,不同的类型取值范围不同,但是范围越大需要的存储空间也会越大。对应的区别如下:
浮点数和定点数类型
MySQL提供了浮点数和定点数类型记录小数。浮点数又分为单精度浮点数FLOAT和双精度浮点数DOUBLE。定点数类型只有一种DECIMAL。浮点数和定点数都可以使用(M, N)表示,M是精度,N是小数位数。
DECIMAL类型和FLOAT丶DOUBLE不同,DECIMAL实际是已字符串存放的。DECIMAL的取值范围和DOUBLE一样,但是有效范围由(M, N)决定。
日期与时间类型
MySQL中的日期数据类型比较多,包括了YEAR丶TIME丶DATE丶DATETIME和TIMESTAMP。例如只需要记录年份的时候可以使用YEAR类型,不必要记录DATE浪费空间。具体信息如下:
文本字符串类型
字符串类型可以用来存储字符串数据,同时也可以存储其他类型的数据包括数值丶日期丶时间等。还包括图片和声音的二进制数据。MySQL的字符串类型分为文本字符和二进制字符串。
文本字符串包括CHAR丶VARCHAR丶TEXT丶ENUM和SET。具体信息如下:
CHAR和VARCHAR的区别:
CHAR(M)是固定长度字符串,0<M<=255。比如M长度为5,存储了“ABCD”那么MySQL就会在字符串末尾添加空格已达到实际的长度。如果存储的字符串“ABCDEDFG”由于长度只能是5,那么就只存储前面的5位“ABCDE”。
VARCHAR(M)是长度可变的字符串,0<M<=65535。VARCHAR的最大实际长度由最长的行的大小和使用的字符集确定。VARCHAR的长度为实际长度+1。1用于标记VARCHAR的结束。
二进制字符串类型
MySQL提供的二进制数据类型有:BIT丶BINARY丶VARBINARY丶TINYBLOB丶BLOB丶MEDIUMBLOB和LONGBLOB。具体信息如下:
BINARY和VARBINARY的区别:
BINARY和VARBINARY的区别类似于CHAR和VARCHAR的区别。
关注微信公众号(程序员小兔)第一时间了解最新博客