一、数值类型
-
TINYINT: 1 字节,范围为 -128 到 127 或 0 到 255。
-
SMALLINT:2 字节,范围为 -32768 到 32767 或 0 到 65535。
-
MEDIUMINT:3 字节,范围为 -8388608 到 8388607 或 0 到 16777215。
-
INT:4 字节,范围为 -2147483648 到 2147483647 或 0 到 4294967295。
-
BIGINT:8 字节,范围为 -9223372036854775808 到 9223372036854775807 或 0 到 18446744073709551615。
-
FLOAT:4 字节,单精度浮点数,范围为 -3.402823466E+38 到 -1.175494351E-38,0,1.175494351E-38 到 3.402823466E+38。
-
DOUBLE:8 字节,双精度浮点数,范围为 -1.7976931348623157E+308 到 -2.2250738585072014E-308,0,2.2250738585072014E-308 到 1.7976931348623157E+308。
-
DECIMAL:变长的精确数值,支持 65 位整数位和 30 位小数位。
二、字符串类型
-
CHAR:定长字符串,最大长度为 255 个字符。
-
VARCHAR:变长字符串,最大长度为 65535 个字符。
-
BINARY:定长二进制字符串,最大长度为 255 个字节。
-
VARBINARY:变长二进制字符串,最大长度为 65535 个字节。空间会变小。
-
TEXT:变长字符串,最大长度为 65535 个字符。
-
BLOB:变长二进制字符串,最大长度为 65535 个字节。
-
ENUM:枚举类型,最多可以包含 65535 个值之一。
-
SET:集合类型,最多可以包含 64 个值之一。
三、日期/时间类型
-
DATE:日期,格式为 'YYYY-MM-DD'。
-
TIME:时间,格式为 'HH:MM:SS'。
-
DATETIME:日期和时间,格式为 'YYYY-MM-DD HH:MM:SS'。
-
TIMESTAMP:自动存储记录插入或更新的日期和时间,格式为 'YYYY-MM-DD HH:MM:SS'。
日期时间类型 | 占用空间 | 日期格式 | 最小值 | 最大值 | 零值表示 |
DATETIME | 8bytes | YYYY-MM-DD HH:MM:SS | 1000-01-01 00:00:00 | 9999-12-31 23:59:59 | 0000-00-00 00:00:00 |
TIMESTAMP | 4bytes | YYYY-MM-DD HH:MM:SS | 19700101080001 | 2038 年的某个时刻 | 00000000000000 |
DATE | 4bytes | YYYY-MM-DD | 1000-01-01 | 9999-12-31 | 0000-00-00 |
TIME | 3bytes | HH:MM:SS | -838:59:59 | 838:59:59 | 00:00:00 |
YEAR | 1bytes | YYYY | 1901 | 2155 | 0000 |
四、约束条件
约束条件 | 说明 |
NOT NULL | 标识该字段不能为null |
UNIQUE KEY (UK) | 标识该字段的值是唯一的,可以为空,一个表中可以有多个UNIQUE KEY |
AUTO_INCREMENT | 标识该字段的值自动增长(整数类型,而且为主键) |
DEFAULT | 为该字段设置默认值 |
UNSIGNED | UNSIGNED |
ZEROFILL | 使用0填充,例如0000001 |