mysql学习笔记(二)----数据类型

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 逻辑 异或
posted @ 2017-01-12 10:59  夜湫  阅读(126)  评论(0编辑  收藏  举报