BIT[(M)]:位字段类型。M表示每个值的位数,范围为从1到64。如果M被省略,默认为1。
TINYINT[(M)] [UNSIGNED] [ZEROFILL]:很小的整数。带符号的范围是-128到127。无符号的范围是0到255。
BOOL,BOOLEAN:是TINYINT(1)的同义词。zero值被视为假。非zero值视为真。在将来,将根据标准SQL引入完全布尔类型的处理。
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]:小的整数。带符号的范围是-32768到32767。无符号的范围是0到65535。
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]:中等大小的整数。带符号的范围是-8388608到8388607。无符号的范围是0到16777215。
INT[(M)] [UNSIGNED] [ZEROFILL]:普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。
INTEGER[(M)] [UNSIGNED] [ZEROFILL]:这是INT的同义词。
BIGINT[(M)] [UNSIGNED] [ZEROFILL]:大整数。带符号的范围是-9223372036854775808到9223372036854775807。无符号的范围是0到18446744073709551615。
FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]:小(单精度)浮点数。允许的值是-3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38。这些是理论限制,基于IEEE标准。实际的范围根据硬件或操作系统的不同可能稍微小些。M是小数纵位数,D是小数点后面的位数。如果M和D被省略,根据硬件允许的限制来保存值。单精度浮点数精确到大约7位小数位。如果指定UNSIGNED,不允许负值。
DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]:普通大小(双精度)浮点数。允许的值是-1.7976931348623157E+308到-2.2250738585072014E-308、0和2.2250738585072014E-308到 1.7976931348623157E+308。这些是理论限制,基于IEEE标准。实际的范围根据硬件或操作系统的不同可能稍微小些。M是小数总位数,D是小数点后面的位数。如果M和D被省略,根据硬件允许的限制来保存值。双精度浮点数精确到大约15位小数位。如果指定UNSIGNED,不允许负值。
DOUBLE PRECISION[(M,D)] [UNSIGNED] [ZEROFILL], REAL[(M,D)] [UNSIGNED] [ZEROFILL]:为DOUBLE的同义词。除了:如果SQL服务器模式包括REAL_AS_FLOAT选项,REAL是FLOAT的同义词而不是DOUBLE的同义词。FLOAT(p) [UNSIGNED] [ZEROFILL]:浮点数。p表示精度(以位数表示),但MySQL只使用该值来确定是否结果列的数据类型为FLOAT或DOUBLE。如果p为从0到24,数据类型变为没有M或D值的FLOAT。如果p为从25到53,数据类型变为没有M或D值的DOUBLE。结果列范围与本节前面描述的单精度FLOAT或双精度DOUBLE数据类型相同。 DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]:压缩的“严格”定点数。M是小数位数(精度)的总数,D是小数点(标度)后面的位数。小数点和(负数)的‘-’符号不包括在M中。如果D是0,则值没有小数点或分数部分。DECIMAL整数最大位数(M)为65。支持的十进制数的最大位数(D)是30。如果D被省略,默认是0。如果M被省略,默认是10。
如果指定UNSIGNED,不允许负值。所有DECIMAL列的基本计算(+,-,*,/)用65位精度完成
DEC[(M[,D])] [UNSIGNED] [ZEROFILL], NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL], FIXED[(M[,D])] [UNSIGNED] [ZEROFILL]:是 DECIMAL的同义词。 FIXED同义词适用于与其它服务器的兼容性。DATE:日期。支持的范围为'1000-01-01'到'9999-12-31'。MySQL以'YYYY-MM-DD'格式显示DATE值,但允许使用字符串或数字为DATE列分配值
DATETIME:日期和时间的组合。支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。MySQL以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,但允许使用字符串或数字为DATETIME列分配值。
TIMESTAMP[(M)]:时间戳。范围是'1970-01-01 00:00:00'到2037年。TIMESTAMP列用于INSERT或UPDATE操作时记录日期和时间。如果你不分配一个值,表中的第一个TIMESTAMP列自动设置为最近操作的日期和时间。也可以通过分配一个NULL值,将TIMESTAMP列设置为当前的日期和时间。TIMESTAMP值返回后显示为'YYYY-MM-DD HH:MM:SS'格式的字符串,显示宽度固定为19个字符。如果想要获得数字值,应在TIMESTAMP列添加+0。
TIME:时间。范围是'-838:59:59'到'838:59:59'。MySQL以'HH:MM:SS'格式显示TIME值,但允许使用字符串或数字为TIME列分配值。
YEAR[(2|4)]:两位或四位格式的年。默认是四位格式。在四位格式中,允许的值是1901到2155和0000。在两位格式中,允许的值是70到69,表示从1970年到2069年。MySQL以YYYY格式显示YEAR值,但允许使用字符串或数字为YEAR列分配值。
CHAR:这是CHAR(1)的同义词。
[NATIONAL] VARCHAR(M) [BINARY]:变长字符串。M表示最大列长度。M的范围是0到65,535。(VARCHAR的最大实际长度由最长的行的大小和使用的字符集确定。最大有效长度是65,532字节)。
BINARY(M):BINARY类型类似于CHAR类型,但保存二进制字节字符串而不是非二进制字符串。VARBINARY(M)
VARBINARY类型类似于VARCHAR类型,但保存二进制字节字符串而不是非二进制字符串。
TINYBLOB:最大长度为 255(28– 1)字节的 BLOB列。TINYTEXT:最大长度为255(28–1)字符的TEXT列。
BLOB[(M)]:最大长度为65,535(216–1)字节的BLOB列。可以给出该类型的可选长度M。如果给出,则MySQL将列创建为最小的但足以容纳M字节长的值的BLOB类型。
TEXT[(M)]:最大长度为65,535(216–1)字符的TEXT列。可以给出可选长度M。则MySQL将列创建为最小的但足以容纳M字符长的值的TEXT类型。
MEDIUMBLOB:最大长度为16,777,215(224–1)字节的BLOB列。
MEDIUMTEXT:最大长度为16,777,215(224–1)字符的TEXT列。
LONGBLOB:最大长度为4,294,967,295或4GB(232–1)字节的BLOB列。LONGBLOB列的最大有效(允许的)长度取决于客户端/服务器协议中配置最大包大小和可用的内存。
LONGTEXT:最大长度为4,294,967,295或4GB(232–1)字符的TEXT列。LONGTEXT列的最大有效(允许的)长度取决于客户端/服务器协议中配置最大包大小和可用的内存。
ENUM('value1','value2',...):枚举类型。只能有一个值的字符串,从值列'value1','value2',...,NULL中或特殊 ''错误值中选出。ENUM列最多可以有65,535个截然不同的值。ENUM值在内部用整数表示。
SET('value1','value2',...):一个设置。字符串对象可以有零个或多个值,每个值必须来自列'value1','value2',...SET列最多可以有64个成员。SET值在内部用整数表示。