1、 数值类型
| 数据类型 | 说明 |
整数数据列 | BIT[(M)] | M表示每个值的位数,范围为从1到64。如果M被省略, 默认为1 |
TINYINT | 小的整数。带符号的范围是-128到127。无符号的范围是0到255 | |
SMALLINT | 小的整数。带符号的范围是-32768到32767。无符号的范围是0到65535 | |
MEDIUMINT | 中等大小的整数。带符号的范围是-8388608到8388607。无符号的范围是0到16777215 | |
INT | 普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。 | |
BIGINT | 大整数。带符号的范围是-9223372036854775808到9223372036854775807。无符号的范围是0到18446744073709551615 | |
浮点型数据列类型 | FLOAT | 小(单精度)浮点数。允许的值是-3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38 |
DOUBLE | 普通大小(双精度)浮点数。允许的值是-1.7976931348623157E+308到-2.2250738585072014E-308、0和2.2250738585072014E-308到 1.7976931348623157E+308 | |
DECIMAL[(M[,D])] | 压缩的“严格”定点数。M是小数位数(精度)的总数,D是小数点(标度)后面的位数 |
数值类数据列的属性
NO | 属性 | 说明 |
1 | ZEROFILL | 属性适用于所有数值类数据列类型,作用是,如果数值的宽度小于定义的显示宽度,则在数值前填充0 |
2 | UNSIGNED | 属性不允许数据列出现负数 |
3 | AUTO_INCREMENT | 属性可生成独一无二的数字序列。只对整数类的数据列有效 |
4 | NULL/NOT NULL | 属性设置数据列是否可为空。 |
5 | DEFAULT | 属性可为数据列指定默认值 |
2、 日期和时间类型
NO | 类型 | 说明 |
| DATE D DATE | 日期。支持的范围为'1000-01-01'到'9999-12-31'。MySQL以'YYYY-MM-DD'格式显示DATE值 |
| DATETIME | 日期和时间的组合。支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。MySQL以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值 |
| TIMESTAMP[(M)] | 时间戳。范围是'1970-01-01 00:00:00'到2037年 |
| TIMESTAMP | 19700101000000~2037年的某个时刻 4字节 00000000000000 |
| TIME | 时间。范围是'-838:59:59'到'838:59:59'。MySQL以'HH:MM:SS'格式显示TIME值 |
| YEAR[(2|4)] | 两位或四位格式的年。默认是四位格式。在四位格式中,允许的值是1901到2155和0000。在两位格式中,允许的值是70到69,表示从1970年到2069年。MySQL以YYYY 格式显示YEAR值 |
说明:
MySQL总是把日期和日期里的年份放在最前面,按年月日的顺序显示。
DATE、TIME和DATATIME类型分别存放日期值、时间值、日期和时间值的组合。它们的格式分别是“CCYY-MM-DD”、“hh:mm:ss”、“CCYY-MM-DD hh:mm:ss”。数据列,这样,该TIMESTAMP数据列就不会再变化。
3、 字符串类型
字符串可以用来表示任何一种值,所以它是最基本的类型之一。我们可以用字符串类型来存储图象或声音之类的二进制数据,也可存储用gzip压缩的数据。
NO | 类型 |
|
1 | CHAR[(M)] | M字节 M字节 |
2 | VARCHAR[(M)] | M字节 L+1字节 |
3 | TINYBLOD/TINYTEXT | 2^8-1字节 L+1字节 |
4 | BLOB/TEXT | 2^16-1字节 L+2 |
5 | MEDIUMBLOB/MEDIUMTEXT | 2^24-1字节 L+3 |
6 | LONGBLOB/LONGTEXT | 2^32-1字节 L+4 |
7 | ENUM('value1','value2',...) | 65535个成员 1或2字节 |
8 | SET('value1','value2',...) | 64个成员 1,2,3,4或8字节 |
说明:
如果把超出字符串最大长度的数据放到字符类数据列中,MySQL会自动进行截短处理。