学着学着有点乱~百度了好多答案,也是乱七八糟的各说各个的,越来越乱。。
就来问问这几个问题,求解答
1、char(M) 中的M是代表字符数,还是字节数?
2、定义 CREATE TABLE test_char1( c1 CHAR(5) ) ; 之后
那 INSERT INTO test_char1(c1) VALUES ('hello'); 跟
INSERT INTO test_char1(c1) VALUES ('一二三四五'); 是一样的吗?都能存储进去。
可当VALUES ('helloo')时就报错了~~这是把英文字也当成字符来算了?
我直接 贴官方文档
https://dev.mysql.com/doc/refman/8.0/en/char.html
The CHAR and VARCHAR types are declared with a length that indicates the maximum number of characters you want to store. For example, CHAR(30) can hold up to 30 characters.
M代表的是字符数,占多少个字节还要看是采用的什么字符集。比如 char(4) 如果字符集是utf8mb4的话。 则是4*4 占16字节。
对不起,我错了,好像是字符
这个是和mysql版本有关,mysql5以后含5,char(M)都是按照字符数进行统计.
两个都能插入
如果mysql版本是5以前,官方给出的说法是按照字节数来算,5以前版本的应该很少了.
如有帮助,欢迎采纳!
1.字符
2.char(5)不行,char(10)可存五个中文字,nvarchar(5)也是五个中文。