mysql数据类型
mysql支持的数据库类型主要有3类:数字类型、字符串(字符)类型、日期和时间类型。
一、数字类型
1.整数类型
数据类型 | 取值范围 | 说明 | 单位 | |
tinyint | 符号值:-127~127 无符号值:0~255 | 最小的整数 | 1字节 | |
bit | 符号值:-127~127 无符号值:0~255 | 最小的整数 | 1字节 | |
bool | 符号值:-127~127 无符号值:0~255 | 最小的整数 | 1字节 | |
smallint | 符号值:-32768~32768 无符号值:0~65535 | 小型整数 | 2字节 | |
mediumint | 符号值:-8388608~8388608 无符号值:0~16777251 | 中型整数 | 3字节 | |
int | 符号值:-2147683648~2147683648 无符号值:0~4294967295 | 标准整数 | 4字节 | |
bigint |
符号值:-923372036854775808~923372036854775808 无符号值:0~18446744073709551615 |
大型整数 | 8字节 |
2.浮点型数据类型
数据类型 | 取值范围 | 说明 | 单位 |
float | +(-)3.402823466E+38 | 单精度浮点数 | 8或4字节 |
double |
+(-)1.7976931348623157E+308 +(-)2.2250738585072014E-308 |
双精度浮点数 | 8字节 |
decimal | 可变 | 标准整数 | 自定义长度 |
二、字符串(字符)类型
类型 | 大小 | 用途 |
---|---|---|
CHAR | 0-255字节 | 定长字符串 |
VARCHAR | 0-255字节 | 变长字符串 |
TINYBLOB | 0-255字节 | 不超过 255 个字符的二进制字符串 |
TINYTEXT | 0-255字节 | 短文本字符串 |
BLOB | 0-65 535字节 | 二进制形式的长文本数据 |
TEXT | 0-65 535字节 | 长文本数据 |
MEDIUMBLOB | 0-16 777 215字节 | 二进制形式的中等长度文本数据 |
MEDIUMTEXT | 0-16 777 215字节 | 中等长度文本数据 |
LOGNGBLOB | 0-4 294 967 295字节 | 二进制形式的极大文本数据 |
LONGTEXT | 0-4 294 967 295字节 | 极大文本数据 |
CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
BINARY和VARBINARY类类似于CHAR和VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。
BLOB是一个二进制大对象,可以容纳可变数量的数据。有4种BLOB类型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它们只是可容纳值的最大长度不同。
有4种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。这些对应4种BLOB类型,有相同的最大长度和存储需求。
三、日期和时间类型
表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。
TIMESTAMP类型有专有的自动更新特性,将在后面描述。
类型 | 大小 (字节) | 范围 | 格式 | 用途 |
---|---|---|---|---|
DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 |
TIME | 3 | '-838:59:59'/'838:59:59' | HH:MM:SS | 时间值或持续时间 |
YEAR | 1 | 1901/2155 | YYYY | 年份值 |
DATETIME | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
TIMESTAMP | 8 | 1970-01-01 00:00:00/2037 年某时 | YYYYMMDD HHMMSS | 混合日期和时间值,时间戳 |
IT运维开发路上的点点滴滴。。。