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 |
逻辑 异或 |