一、常见的数据类型
1、数值型:
整型:
分类:tinyint(1个字节)、
smallint(2个字节)、
mediumint(3个字节)、
int/integer(4个字节)、
bigint(8个字节)
特点:
1、默认设置为有符合,如果需要设置为无符合需要在自动类型后面添加上unsigned,如果设置为无符号则该列的数值不能为负数
例如:
create table int_table(
id int,
idno int usigned);
2、如果插入的数值超出了整数的范围会报out of range异常,并且插入临界值
3、如果未设置长度,会有默认的长度,长度代表显示的最大宽度(非最大位数),如果不够会用0填充,但必须搭配zerofill使用(如果对字段使用的zerofill,那么该列会变为无符号列)
例如:
create table int_table(
id int,
idno int zerofill);
小数:
定点型:
float(M,D)
double(M,D)
浮点型:
dec(M,D)
或
decimal(M,D)
特点:
1、M:整数部位+小数部位的长度,D:小数点后保留位数
例如:M=5,D=2
如果超过设置的长度则插入临界值999.99
如果小数点位数不足则补充0
如果小数为超出设置的小数点位,则会四舍五入
2、M、D可以省略
如果是decimal,则M默认为10,D默认为0
float和double则会根据插入的实际数值自动适配(不能超过临界值)
3、定点型的精确度较高,如果要求插入数值的精度较高则考虑decimal
例如:货币
2、字符型:
较短的文本(M表示字符数):char(M)、varchar(M)
特点:
1、char长度默认设置为1,存储字符时长度固定,耗费空间,效率高
varchar长度必须手动设置,根据实际值自动适配,相对节省空间,效率低
例如M等于10,插入3个字符,char会固定占用10个字符的空间,varchar只会占用3个字符的空间
较长的文本:text、blob(较长的二进制数据)
其他:
binary和varbinary用于保存较短的二进制
enum用于保存枚举
set用于保存集合
3、日期型:
date 只保存日期
time 只保存时间
year 只保存年
datetime 保存日期+时间
timestamp 保存日期+时间
特点:
datetime:8个字节,范围:1000-9999,不受时区影响
timestamp:4个字节,范围:1970-2038,受时区影响