1、数值型
1.1、整型
tinyint[一个字节](有符号:-128127,无符号:0255),
smallint[2个字节]:(有符号:-32768~32767,无符号:\0~65535),
mediumint[3个字节],
int[4个字节],
integer[4个字节],
bigint[8个字节];
特点:
1、设置无符号的关键字:unsigned;
2、插入数据超过临界值,会报out of range异常,并且插入临界值;
3、不设置长度,默认长度,长度表示显示的最大宽度,如果不够用0填充,显示的关键字:zerofill(使用该关键字之后字段为无符号)
INSERT INTO tab_int VALUES(111111111111,111111111111);
1.2、浮点型
浮点型:
定点数(精度高):decimal(m,d)[m+2字节],dec(m,d);
浮点数:float(4字节),double(8字节);
特点:
1、m:整数部位+小数位,d:小数部位;
2、m和d省略,decimal默认(10,0),float和double根据数值决定精度;
3、定点型的精度较高,优先用decimal;
INSERT INTO tab_float VALUES(1111.123,1111.123,1111.123);
2、字符型
较短的文本:
char(m:最大字符数,默认为空):固定长度字符,比较耗费空间,效率高
varchar(m:最大字符数,不可省略):可变长度字符,比较节省空间,效率低
较长的文本:text,blob(二进制)
枚举:enum(‘值1’,‘值2’,…,‘值n’):所插入的值需要在值的范围内;
集合:set(‘值1’,‘值2’,…,‘值n’):所插入的值需要在值的范围内;
INSERT INTO tab_char VALUES('a','a','a','a,b,c');
INSERT INTO tab_char VALUES('a','a','m','a,b,d');
3、日期型
date(只有年月日);
datetime(8字节):范围大(1000-9999);
timestamp(4字节):返回小(1970-2030),受mysql版本和时区影响;
time(没有年月日);
year(只有年份);
INSERT INTO tab_date VALUES(NOW(),NOW(),NOW(),NOW(),NOW());