在MySQL中,有三种主要的类型:文本、数字和日期/时间类型。
文本类型(text):
数据类型 描述
CHAR(size)
保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多255 个字符。
VARCHAR(size)
保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的最大长度。最多255 个字符。(注释:如果值的长度大于255,则被转换为TEXT 类型)
TINYTEXT
存放最大长度为255 个字符的字符串。
TEXT
存放最大长度为65,535 个字符的字符串。
BLOB
用于BLOBs (Binary Large OBjects)。存放最多65,535 字节的数据。2^16B
MEDIUMTEXT
存放最大长度为16,777,215 个字符的字符串。2^24
MEDIUMBLOB
用于BLOBs (Binary Large OBjects)。存放最多16,777,215 字节的数据。2^24B
LONGTEXT
存放最大长度为4,294,967,295 个字符的字符串。2^32
LONGBLOB
用于BLOBs (Binary Large OBjects)。存放最多4,294,967,295 字节的数据。2^32B
ENUM(x,y,z,etc.)
允许你输入可能值的列表。可以在ENUM 列表中列出最大65535 个值。如果列表中不存在插入的值,则插入空值。注释:这些值是按照你输入的顺序存储的。可以按照此格式输入可能的值:ENUM('X','Y','Z')
SET 与 ENUM 类似,SET 最多只能包含 64 个列表项,不过 SET 可存储一个以上的值。
数字类型(number):
数据类型 描述
TINYINT(size)
-128 到127 常规。0 到255 无符号*。在括号中规定最大位数。2^8b
SMALLINT(size)
-32768 到32767常规。0 到65535 无符号*。在括号中规定最大位数。2^16b
MEDIUMINT(size)
-8388608 到 8388607 普通。0~16777215 无符号*。在括号中规定最大位数。2^24b
INT(size)
-2147483648 到2147483647 常规。0 到4294967295 无符号*。在括号中规定最大位数。2^32b
BIGINT(size)
-9223372036854775808 到9223372036854775807 常规。0 到18446744073709551615 无符号*。在括号中规定最大位数。2^64b
FLOAT(size,d)
带有浮动小数点的小数字。在括号中规定最大位数。在d 参数中规定小数点右侧的最大位数。
DOUBLE(size,d)
带有浮动小数点的大数字。在括号中规定最大位数。在d 参数中规定小数点右侧的最大位数。
DECIMAL(size,d)
作为字符串存储的DOUBLE 类型,允许固定的小数点。
* 这些整数类型拥有额外的选项UNSIGNED。通常,整数可以是负数或正数。如果添加UNSIGNED 属性,那么范围将从0 开始,而不是某个负数。
Date 类型:
数据类型 描述
DATE()
日期。格式:YYYY-MM-DD,注释:支持的范围是从'1000-01-01' 到'9999-12-31'
DATETIME()
*日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS,注释:支持的范围是从'1000-01-01 00:00:00' 到'9999-12-31 23:59:59'
TIMESTAMP()
*时间戳。TIMESTAMP 值使用Unix 纪元('1970-01-01 00:00:00' UTC) 至今的描述来存储。格式:YYYY-MM-DD HH:MM:SS,注释:支持的范围是从'1970-01-01 00:00:01'UTC 到'2038-01-09 03:14:07'UTC
TIME()
时间。格式:HH:MM:SS 注释:支持的范围是从'-838:59:59' 到'838:59:59'
YEAR()
2 位或4 位格式的年。注释:4位格式所允许的值:1901到2155。2位格式所允许的值:70到69,表示从 1970到2069。
* 即便DATETIME和TIMESTAMP返回相同的格式,它们的工作方式很不同。在INSERT或UPDATE 查询中,TIMESTAMP自动把自身设置为当前的日期和时间。TIMESTAMP也接受不同的格式,比如 YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD或YYMMDD。