mysql的varchar测试


转自:https://blog.csdn.net/w576233728/article/details/97624532

1.varchar定义数目和汉字数一样

mysql> create table test_varchar (id int,bytes varchar(2));    --建表
Query OK, 0 rows affected (0.01 sec)

mysql> insert into test_varchar (id,bytes) values (1,'汉字');
Query OK, 1 row affected (0.00 sec)    --成功插入两个汉字

mysql> insert into test_varchar (id,bytes) values (1,'ab');
Query OK, 1 row affected (0.00 sec)    --成功插入两个英文字符

--尝试插入三个英文字符,有个warning
mysql> insert into test_varchar (id,bytes) values (1,'abc');
Query OK, 1 row affected, 1 warning (0.00 sec)    

--查看表,可以发现超出长度的被截断了
mysql> select * from test_varchar;
+------+--------+
| id   | bytes  |
+------+--------+
|    1 | 汉字   |
|    1 | ab     |
|    1 | ab     |
+------+--------+

--插入超出数目的汉字
mysql> insert into test_varchar (id,bytes) values (1,'汉字测试');
Query OK, 1 row affected, 1 warning (0.00 sec)

--同样也会被截断
mysql> select * from test_varchar;
+------+--------+
| id   | bytes  |
+------+--------+
|    1 | 汉字   |
|    1 | ab     |
|    1 | ab     |
|    1 | 汉字   |
+------+--------+

--使用不同id插入,仍然被截断,说明不是id的影响
mysql> select * from test_varchar;
+------+--------+
| id   | bytes  |
+------+--------+
|    1 | 汉字   |
|    1 | ab     |
|    1 | ab     |
|    1 | 汉字   |
|    2 | 汉字   |
+------+--------+

总结,mysql中,char(n)和varchar(n)中n代表的是字符数,不论是中文还是英文,一个字符就是一个英文字母或一个汉字

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/289960.html

(0)
上一篇 2022年9月17日
下一篇 2022年9月17日

相关推荐

发表回复

登录后才能评论