一、n在不同数据类型中的不同含义
int(n)
n 不代表最大存储长度 n只是代表位数不够以0补存位数;存储最大数据依然是4个字节。
char(n)
n代表的字符的长度,重点是字符的长度,不是字节或其他。不可以插入超过n的长度的字符串。
varchar(n)
变成字符串,不可以插入超过n的长度的字符串。
二、长度的三种模式
# 查询长度的模式
show variables like 'sql_model'
# 更改长度的模式
set sql_mode=ANSI;
# 有以下三种模式
ANSI 宽松的,在ANSI模式下,当我们插入数据时,未满足列长度要求时,数据同样会插入成功,但是对超出列长度的字段进行截断,同时报告warning警告。
STRICT_TRANS_TABLES 严格的,严格按照n的长度要求,超过n发生error
TRADITIONAL TRADITIONAL模式与STRICT_TRANS_TABLES模式执行的结果,在这种情况下一致。