mysql表结构设计--string类型

本文探讨了MySQL数据库的字符集选择,推荐使用UTF8MB4,并介绍了排序规则,通常采用不区分大小写的_ci。字段取值约束方面,推荐避免使用ENUM,而利用新的CHECK约束。最后讨论了密码存储的最佳实践,应采用动态盐和非固定加密算法,以增强安全性。
摘要由CSDN通过智能技术生成

1. 字符集

包括 MySQL 8.0 版本在内,字符集默认设置成 UTF8MB4,8.0 版本之前默认的字符集为 Latin1.
配置文件设置:

[mysqld]
character-set-server = utf8mb4
...

正确修改列字符集的命令
```sql
ALTER TABLE emoji_test CONVERT TO CHARSET utf8mb4;

CHAR 本质也是变长的。
鉴于目前默认字符集推荐设置为 UTF8MB4,所以在表结构设计时,可以把 CHAR 全部用 VARCHAR 替换,底层存储的本质实现一模一样

2. 排序

SHOW COLLATION LIKE 'utf8mb4%';

排序规则以 _ci 结尾,表示不区分大小写(Case Insentive),_cs 表示大小写敏感,_bin 表示通过存储字符的二进制进行比较。需要注意的是,比较 MySQL 字符串,默认采用不区分大小的排序规则
绝大部分业务的表结构设计无须设置排序规则为大小写敏感

3. 字段取值约束

  1. 在 MySQL 8.0 版本之前,可以使用 ENUM 字符串枚举类型,只允许有限
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值