今天总结一下MySQL中支持的数据类型
首先从大体上看,MySQL支持的类型有如下几种,数值类型,日期类型,字符串类型。
一 数值类型
1 ,BIT[(M)]
比特类型,M代表每个比特位的数量,从1到64,默认值是1
2,TINYINT
非常小的整数,有符号的取值是 -128到127,无符号的取值是 0-255,占用一个字节
3,BOOL, BOOLEAN
这个类型跟上面的tinyint(1)类似,0是false,非0是true
4,SMALLINT
小整数,有符号的取值范围是 -32768到32767,无符号的取值是 0-65535,占用2个字节
5,MEDIUMINT
中等大小的整数,有符号的取值范围是 -8388608到8388607,无符号的取值是 0-16777215,占用3个字节
6,INT,INTEGER
正常大小的整数,有符号的取值范围是 -2147483648到2147483647,无符号的取值是 0-4294967295,占用4个字节
7,BIGINT
大整数,有符号的取值是 -9223372036854775808到 9223372036854775807,无符号的取值是 0-18446744073709551615,占用8个字节
8,DECIMAL[(M[,D])]
MySQL中包装的确定精度的数,M指数值的总长度(精度,包括小数部分),D是小数点后的位数,小数点和正负的符号不包括在M的计算中,如果D为0,表示没有小数点和小数点后面的部分,M支持的最大位数是65,小数位(D)支持的最大位为30,D省略默认为0,M省内默认为10.
9,DEC[(M[,D])]
与上面decimal同义,用来兼容其他的数据库
10,FLOAT[(M,D)]
小浮点数(单精度),允许的值是-3.402823466 E+38到-1.175494351E-38,0,和1.175494351e-38到3.402823466 E+38
这些都是基于IEEE标准的理论限制。根据您的硬件或操作系统,实际的范围可能会稍微小一些。M是数字的总数,D是小数点后面的位数。如果省略了M和D,那么值就会被存储到硬件允许的范围内。单精度浮点数精确到小数点后7位。
11,DOUBLE[(M,D)]
双精度浮点数,基本与上面类型一致,存储的精度更高,双精度浮点数精确到小数点后15位。
二 日期类型
1,DATE
日期类型,支持取值范围是 ‘1000-01-01’ 到 ‘9999-12-31’,MySQL显示date值使用“YYYY-MM-DD”这样的格式,但是我们可以使用string或者数值对它进行赋值。
2,DATETIME[(fsp)]
日期和时间组合类型,支持的取值范围为 ‘1000-01-01 00:00:00.000000’ 到 ‘9999-12-31 23:59:59.999999’,fsp可选值的范围是0-6 如果为0表示没有小数点部分,默认为0.
3,TIMESTAMP[(fsp)]
时间戳类型,取值范围是 '1970-01-01 00:00:01.000000' UTC to '2038-01-19 03:14:07.999999' UTC
4,TIME[(fsp)]
5,YEAR[(4)]
三 字符串类型
1,CHAR
2,VARCHAR
3,BINARY
4,VARBINARY
5,BLOB
6,TEXT
7,ENUM
8,SET