
有符号取值范围:当这个值【允许】出现【负数】的时候的取值范围;
无符号取值范围:当这个值【不允许】出现【负数】的时候的取值范围;
· tinyint 1个字节,字节大小类似于java语言的byte
【举例】如果一个字段存年龄可以使用tinyint,因为年龄的范围不会太大,tinyint会节省空间;但是年龄后面不会为负数,所以字段设置就需要用无符号: unsigend
age timyint unsigned comment '用户年龄' -- 取值在0-255之间
- 1
. smallint 2个字节,字节大小类似于java语言的short
· mediumint 3个字节,【java语言没有3个字节】
· int 或者 integer 4个字节,字节大小类似于java语言的 int
· bingint 8个字节,字节大小类似于java语言的 long
· float 4个字节,字节大小类似于java语言的 float
· double 8个字节,字节大小类似于java语言的 double
【举例】当学生取值分数的时候可能会有一位小数,推荐使用:double 【double(4,1)需要指定2位参数】
score double(4,1) unsigned comment '学生成绩' -- 也同样没有负数
- 1
· decimal 依赖于M(精度)和D(标度)的值 【使用的时候要自己指定】
123.45 精度指的是长度 5 ,标度是小数点后面的位数 2

上面后缀带 blob 的是用来描述二进制数据的;带text是用来描述文本数据的;
使用char(10)与varchar(10)后面要加(10) 用于指定此字段最长的长度;char性能要比varchar高,因为varchar使用时要去计算空间;如果是存固定值的字符推荐使用char ---- 男 | 女
· char 定长字符串 char(10)
【举例】char(10) 存储的时候即便里面存了一个字母 a 他也是占用10个字符的空间;其他空间使用 空格补位;
· varchar 变长字符串 varchar(10)
【举例】varchar(10) 使用了1个字符就是1个字符的空间;
· tinyblob 不超过255个字符的二进制数据
· tinytext 短文本字符串
· blob 二进制形式的长文本数据
· text 长文本数据
· mediumblob 二进制形式的中等长度文本数据
· mediumtext 中等长度文本数据
· longblog 二进制形式的极大文本数据
· longtext 极大文本数据

· date 日期值
【举例】存储 生日 birthday ,推荐使用date
· time 时分秒
· year 年分值
· datetime 日期+时分秒
· timestamp 时间戳 但是时间戳只能【表示】【最小1970年 到 2038年】