MySQL中的数据类型
1、数类型 数据类型 说明 整数数据列 BIT[( M )] M 表示每个的位数,范围为从1到64。如果 M 被省略, 默认为1 TINYINT 小的整数。带符号的范围是-128到127。无符号的范围是0到255 SMALLINT 小的整数。带符号的范围是-32768到32767。无符号的范围是0到65535 M
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会自动进行截短处理。