Published on

数据库数据类型

Authors
  • avatar
    Name
    MissTree
    Twitter

数值类型

数值类型大小有符号(SIGNED)范围无符号(UNSIGNED)范围描述
TINYINT1 byte(-128, 127)(0,255)小整数值
SMALLINT2 bytes(-32768,32767)(0,65535)大整数值
MEDIUMINT3 bytes(-8388608,8388607)(0,16777215)大整数值
INT或INTEGER4 bytes(-2147483648,2147483647)(0,4294967295)大整数值
BIGINT8 bytes(-2^63,2^63-1)(0,2^64-1)极大整数值
FLOAT4 bytes(-3.402823466 E+38,3.402823466351 E+ 38)0和(1.175494351 E-38,3.402823466E+38)单精度浮点数值
DOUBLE8 bytes(-1.7976931348623157 +308,1.7976931348623157 E+308)0和(2.2250738585072014-308,1.7976931348623157 +308)双精度浮点数值
DECIMAL-依赖于M(精度)和D(标度)的值依赖于M(精度)和D(标度)的值小数值(精确定点数)

字符串类型

类型大小描述
CHARE0-255 bytes定长字符串
VARCHAR0-65535 bytes变长字符串
TINYBLOB0-255 bytes不超过255个字符的二进制数据
TINYTEXT0-255 bytes短文本字符串
BLOB0-65 535 bytes二进制形式的长文本数据
TEXT0-65 535 bytes长文本数据
MEDIUMBLOB0-16 777 215 bytes二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215 bytes中等长度文本数据
LONGBLOB0-4 294 967 295 bytes二进制形式的极大文本数据
LONGTEXT0-4 294 967 295 bytes极大文本数据

对于 chare 和 varchar 类型,在定义字符串长度的时候,若是变量小于定义的长度,chare类型后面会显示空格,varchar类型 mysql 会在存储时删除末尾的空格。例如:在给名字定义类型的时候最好使用 varchar 类型,因为名字长度是不固定的。对于性别来说,最好使用 chare 类型,因为性别只有男和女两种。但是在性能对比上,chare 类型的性能要比 varchar 类型的性能要高,因为长度固定,比较稳定。
对于二进制类型和文本类型,看情况定义,长文本和长二进制数据基本不会在数据库中使用。不好管理和性能较差,像媒体文件一般另外用服务器存储


日期和时间类型

类型大小格式范围描述
DATE3 bytesYYYY-MM-DD1000-01-01/9999-12-31日期值
TIME3 bytesHH:MM:SS-838:59:59至838:59:59时间值或持续时间
YEAR1 bytesYYYY1901至2155年份值
DATETIME8 bytesYYYY-MM-DD HH:MM:SS1000-01-01 00:00:00至9999-12-3123:59:59混合日期和时间值
TIMESTAMP4 bytesYYYY-MM-DD HH:MM:SS1970-01-01 00:00:01至2038-01-19 03:14:07混合日期和时间值,时间戳