MYSQL8.0使用总结

  • char和varchar

char和varchar初始化的时候,都需要指定长度,例如char(10),varchar(10),括号中的10表示最长可以存储多少个字符。无论这个字符是中文还是英文,最长可存储10个,但是实际这个字符串占的长度可能是不一样的。跟这个字符在数据库当前的字符集下所占的空间有关。例如“qwertyuiop”和“我的家在江苏省南京市”,数据库字符集utf8mb4,两个字符串都是10个字符,但是第一个字符串实际占10个字节,第二个字符串实际占3×10=30个字节。因为一个中文字符在utf8mb4下占3个字节。

可以用函数length()查询字段所占的实际字节数,例如:“select length(id) from utf8mb4”

如果启用了“strict SQL mode”,插入数据时超过规定的长度,会报错(我们使用的一般是这个模式);未启用,超过最大长度的数据会被截取删除并且触发一个warning。

UTF-8字符集每个字符最多使用三个字节,并且只包含基本多语言面 (Basic Multilingual Plane,BMP)字符。

utf8mb4 字符集使用最多每字符四个字节支持补充字符。截图最后的Maxlen表示每个字符最多使用的字节。

参考链接:https://dev.mysql.com/doc/refman/8.0/en/char.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值