数值型
包含:整型、小数(定点数,浮点数)
整型:
tinyint | smallint | mediumint | int/integer | bigint |
---|---|---|---|---|
1个字节 | 2个字节 | 3个字节 | 4个字节 | 8个字节 |
特点:
①都可以设置无符号和有符号,默认是有符号,通过unsigned设置无符号。
②如果超出了范围,会报out or range异常,插入临界值。
③长度可以不指定,默认会有一个长度。
int(7),这个长度代表显示的最大宽度,如果不够则坐标用0填充,但需要搭配zerofill,并且默认变为无符号整型。
补充:有符号和无符号的区别
- 无符号unsigned 表示设置的的数据为0或者正数;
- 有符号则可以是负数 -;
- 内存占比 有符号 0-255 无符号 -127~127
小数:
定点数:decimal(M,D)
浮点数:
float(M,D) 4
double(M.D) 8
特点:
①M代表整数部位+小数部位的个数,D代表小数部位。
②如果超出范围,则报out or range异常,并且插入临界值
③M和D都可以省略,但对于定点数,M默认为10,D默认为0
④如果精度要求较高,则优先考虑使用定点数。
float和double会根据插入的数值精度来决定精度。
原则:所选择的类型越简单越好,能保存数值的类型越小越好,节省空间。
字符型
char :较短文本(M)M :代表最多的字符数
varchar:
binary:
varbinary:
enum:
set :
text : 较长的文本
blob:
char和varchar的区别:
写法 | M的意思 | 特点 | 空间的耗费 | 效率 | |
---|---|---|---|---|---|
char | char(M)- M可省略,默认为1 | 最大的字符数 | 固定长度的字符 | 比较耗费 | 高 |
varchar | varchar(M) -M不可省略 | 最大的字符数 | 可变长度的字符 | 比较节省 | 低 |
日期型
日期型 | 字节数 | 特点 |
---|---|---|
date | 4 | 时间 |
datetime | 8 | 日期+时间1000-9999 |
timestamp | 4 | 日期+时间1970-2038-比较容易受时区、语法模式、版本的影响,更能反映当前时区的真实时间 |
time | 3 | 时间 |
year | 1 | 年 |