char(N),N在0-255间
varchar(N),N在0-65536间
需要注意N是字符,不是字节,英文字母一个字符一个字节,阿拉伯字母一个字符两个字节,中文日文一个字符三个字节,emoji是一个字符四个字节
当今移动端的发展,有emoji的存储需求,utf8(一个字符上限三个字节)不再适用,建议用utf8mb4(一个字符上限四个字节)
字符串排序时候,绝大多数业务情况都是大小写不敏感的
在设计表的时候字符串类型通常是用varchar修改表中已有的列的字符的编码,用命令:
ALERT TABLE ... CONVERT TO ...
8.0.16版本之前的ENUM类型,可以通过SQL_MODE严格限制插入的字符串在枚举里。现在可以直接用CHECK约束机制(就是条件判断然后用or并起来)
隐私业务,比如密码等要加密,不能只用简单的静态加密,比如MD5之类的,不安全。推荐使用动态盐+动态加密算法