MySQL --- 数据类型
常见的数据库中主要的数据类型有:
① 定长字符型:char(size)
② 变长字符型:varchar2(size)
③ 数据字符型:number(m,n)m 指的是有效位,n指的是小数位
④ 日期类型:date
⑤ 大对象:LOB(包括二进制BLOB和字符大对象CLOB)
MySQL 支持多种类型,大致可以分为三类:数值(Value)、日期/时间(date)、字符串类型(string)
1.数值类型
MySQL 数值数据类型 | ||||
类型 | 大小 | 范围(有符号) | 范围(无符号) | 用途 |
Tinyint | 1byte(字节) | (-128,127) | (0,255) | 小整数值 |
Smallint | 2byte(字节) | (-32768,32767) | (0,65535) | 大整数值 |
Mediumint | 3byte(字节) | (-8388608,8388607) | (0,16777215) | 大整数值 |
Int/Integer (整数型) | 4byte(字节) | (-2147483648,2147483617) | (0,4294967295) | 大整数值 |
Bigint | 8byte(字节) | (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) | (0,18 446 744 073 709 551 615) | 极大整数值 |
Float (浮点型) | 4byte(字节) | (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) | 0,(1.175 494 351 E-38,3.402 823 466 E+38) | 单精度浮点数值 |
Double | 8byte(字节) | (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 双精度浮点数值 |
Decimal | 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 | 依赖于M和D的值 | 依赖于M和D的值 | 小数值 |
2.日期和时间类型
日期和时间类型 | ||||
类型 | 大小(字节) | 范围 | 格式 | 用途 |
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 | 4 | 1970-01-01 00:00:00/2038 结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07 | YYYYMMDD HHMMSS | 混合日期和时间值,时间戳 |
3.字符串类型
字符串类型 | ||||
类型 | 大小 | 用途 | ||
Char (字符型) |
0-255字节 | 定长字符串 | ||
Varchar | 0-65535字节 | 变长字符串 | ||
Tinyblob | 0-255字节 | 不超过255个字符的二进制字符串 | ||
Tinytext | 0-255字节 | 短文本字符串 | ||
BLOB | 0-65535字节 | 二进制形式的长文本数据 | ||
Text | 0-65536字节 | 长文本数据 | ||
Mediumblob | 0-16777215字节 | 二进制形式的中等长度文本数据 | ||
Mediumtext | 0-16777215字节 | 中等长度文本数据 | ||
Longblob | 0-4294967295字节 | 二进制形式的极大文本数据 | ||
Longtext | 0-4294967295字节 | 极大文本数据 |
BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们区别在于可容纳存储范围不同。
有 4 种 TEXT 类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。