Mysql支持多种列类型,包括数值类型、日期时间类型、字符串类型等等
一、数值类型
1、BIT[(M)]
位字段类型,M表示该字段的位数,范围是1-64.如果M被省略,则默认为1
2、TINYINT [UNSIGNED] [ZEROFILL]
很小的整数,大小为1字节,有符号数的范围是-128-127,无符号数的范围是0-255
2、SMALLINT [UNSIGNED] [ZEROFILL]
小的整数,大小为2字节,有符号数的范围是-23768-32767,无符号数的范围是0-65535
3、MEDIUMINT [UNSIGNED] [ZEROFILL]
中等大小的整数,大小为3字节,有符号的范围是-8388608到8388607,无符号的范围是0到16777215。
4、INT [UNSIGNED] [ZEROFILL]
普通大小的整数,大小为4字节,有符号的范围是-2147483648到2147483647,无符号的范围是0到4294967295
5、BIGINT [UNSIGNED] [ZEROFILL]
大整数,大小为8字节,有符号的范围是-9223372036854775808到9223372036854775807,无符号的范围是0到18446744073709551615。
6、FLOAT [(M, D)] [UNSIGNED] [ZEROFILL]
单精度浮点数,允许的值是-3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38。
M是小数总位数,D是小数点后面的位数。如果M和D被省略,根据硬件允许的限制来保存值。单精度浮点数精确到大约7位小数位。
7、DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]
双精度浮点数。允许的值是-1.7976931348623157E+308到-2.2250738585072014E-308、0和2.2250738585072014E-308到1.7976931348623157E+308。
M是小数总位数,D是小数点后面的位数。如果M和D被省略,根据硬件允许的限制来保存值。双精度浮点数精确到大约15位小数位。
注:
1、INTEGER是INT的同义词
2、REAL是FLOAT的同义词
二、日期和时间类型
1、DATE
日期。支持的范围为'1000-01-01'到'9999-12-31'。MySQL以'YYYY-MM-DD'格式显示DATE值,但允许使用字符串或数字为DATE列分配值。
2、DATETIME
日期和时间的组合。支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。MySQL以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,但允许使用字符串或数字为DATETIME列分配值。
3、TIMESTAMP[(M)]
时间戳。范围是'1970-01-01 00:00:00'到2037年。TIMESTAMP列用于INSERT或UPDATE操作时记录日期和时间。如果你不分配一个值,表中的第一个TIMESTAMP列自动设置为最近操作的日期和时间。也可以通过分配一个NULL值,将TIMESTAMP列设置为当前的日期和时间。
4、TIME
时间。范围是'-838:59:59'到'838:59:59'。MySQL以'HH:MM:SS'格式显示TIME值,但允许使用字符串或数字为TIME列分配值。
5、YEAR[(2|4)]
两位或四位格式的年。默认是四位格式。在四位格式中,允许的值是1901到2155和0000。在两位格式中,允许的值是70到69,表示从1970年到2069年。MySQL以YYYY格式显示YEAR值,但允许使用字符串或数字为YEAR列分配值。
三、字符串类型
1、CHAR(M)
固定长度的字符串,M为字符串长度,范围0-255
2、VARCHAR(M)
可变长度字符串,M为字符串长度,范围0-65535