Mysql数据类型
整数类型
类型名称 |
说明 |
存储需求 |
有符号 |
无符号 |
TINYINT |
很小的整数 |
1字节 |
-128~127 |
0~255 |
SMALLINT |
小的整数 |
2字节 |
-32768~32767(万级) |
0~65535 |
MEDIUMINT |
中等大小的整数 |
3字节 |
-8388608~8388607(百万级) |
0~16777215 |
INT(INTEGER) |
普通大小的整数 |
4字节 |
-2147483648~2147483647(十亿级) |
0~4294967295 |
BIGINT |
大整数 |
8字节 |
-9223372036854775808~9223372036854775808(太大啦) |
0~18446744073709551615 |
tips
id INT(10);
这里10是指在id字段中的数据一般只显示10位**数字**的宽度.
显示的宽度和数据类型的取值范围是无关的。
显示的宽度只是指明Mysql最大可能显示的数字个数,数值的位数小于指定的宽度时会由空格填充;
如果插入了大于显示宽度的值,只要该值不超过该类型 **整数** 的取值范围,数值依然可以插入,而且能够显示出来。
浮点数据类型和定点数据类型
类型名称 |
说明 |
存储需求 |
FlOAT |
单精度浮点数 |
4字节 |
DOUBLE |
双精度浮点数 |
8字节 |
DECIMAL (M,D) DEC |
压缩的"严格"定点数 |
M+2字节 |
tips
无论是顶点还是浮点类型,如果用户指定的精度超出精度范围,则会四舍五入进行处理。
DECIMAL在mysql中以字符串形式存储。
日期与时间
类型名称 |
日期格式 |
日期范围 |
存储需求 |
YEAR |
YYYY |
1901-2155 |
1字节 |
TIME |
HH:MM:SS |
-838:59:59~838:59:59 |
3字节 |
DATE |
YYYY-MM--DD |
1000-01-01~9999-12-3 |
3字节 |
DATETIME |
YYYY-MM-DD HH:MM:SS |
1000-01-01 00:00:00~9999-12-31 23:59:59 |
8字节 |
TIMESTAMP |
YYYY-MM-DD HH:MM:SS |
1970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 UTC |
4字节 |
字符串类型
类型名称 |
说明 |
储存需求 |
CHAR(M) |
固定长度非二进制字符串 |
M字节,1<=M<=255 |
VARCHAR(M) |
变长非二进制字符串 |
L+1字节,在此 L<=M 和 1<= M <=255 |
TINYTEXT |
非常小的非二进制字符串 |
L+1字节,在此 L < 2^8 |
TEXT |
小的非二进制字符串 |
L+2字节,在此 L < 2^16 |
MEDIUMTEXT |
中等大小的非二进制字符串 |
L+3字节,在此 L < 2^24 |
LONGTEXT |
大的非二进制字符串 |
L+4字节,在此 L < 2^32 |
ENUM |
枚举类型,只能有一个枚举字符值 |
1或者2字符,取决于枚举值的数目(最大值65535) |
SET |
一个集合,字符串对象可以有零个或者多个SET成员 |
1,2,3,4或者8个字节,取决于接成员的数量(最多64个成员) |
二进制类型
类型名称 |
说明 |
存储需求 |
BIT(M) |
位字段类型 |
大约(M+7)/8个字节 |
BINARY(M) |
固定长度二进制字符串 |
M个字节 |
VARBINARY(M) |
可变长度的二进制字符串 |
M+1个字节 |
TINYBLOG(M) |
非常小的BLOG |
L+1字节,在此L<2^8 |
BLOG(M) |
小BLOG |
L+2字节,在此L<2^16 |
MEDIUBLOB(M) |
中等大小的BLOG |
L+3字节,在此L<2^24 |
LONGBLOG(M) |
非常大的BLOG |
L+4字节,在此L<2^32 |
常见运算符
运算符 |
作用 |
= |
等于 |
<=> |
安全的等于 |
<> (!=) |
不等于 |
<= |
小于等于 |
>= |
大于等于 |
> |
大于 |
IS NULL |
判断一个值是否为NULL |
IS NOT NULL |
判断一个值是否不为NULL |
LEAST |
在有两个或多个参数时,返回最小值 |
GREATEST |
在有两个或者多个参数时,返回最大值 |
BETWEEN AND |
判断一个值是否落在两个值之间 |
ISNULL |
与IS NULL作用相同 |
IN |
判断一个值是IN列表中的任意一个值 |
NOT IN |
判断一个不是IN列表中的任意一个值 |
LIKE |
通配符匹配 |
REGEXP |
正则表达式匹配 |
逻辑运算符
运算符 |
作用 |
NOT 或 ! |
逻辑非 |
AND 或 && |
逻辑与 |
OR 或 |
逻辑或 |
XOR |
逻辑 异或 |