数据库
首页 > 数据库> > mysql的varchar测试

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代表的是字符数,不论是中文还是英文,一个字符就是一个英文字母或一个汉字

标签:varchar,+------+--------+,--,测试,mysql,test,id
来源: https://www.cnblogs.com/BlueBlueSea/p/16701103.html