扩展MySQL中varchar字段的大小会影响其中的数据吗?

如果要在MySQL中扩展varchar字段的大小,则不会影响其中的数据。

让我们首先创建一个表-

mysql> create table DemoTable(
   Name varchar(8)
);

使用插入命令在表中插入一些记录-

mysql> insert into DemoTable values('John');
mysql> insert into DemoTable values('Robert');
mysql> insert into DemoTable values('Mike');
mysql> insert into DemoTable values('Sam');

使用select语句显示表中的所有记录-

mysql> select *from DemoTable;

这将产生以下输出-

+--------+
| Name   |
+--------+
| John   |
| Robert |
| Mike   |
| Sam    |
+--------+
4 rows in set (0.00 sec)

让我们检查表的描述-

mysql> desc DemoTable;

这将产生以下输出-

+-------+------------+------+-----+---------+-------+
| Field | Type       | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| Name  | varchar(8) | YES  |     | NULL    |       |
+-------+------------+------+-----+---------+-------+
1 row in set (0.04 sec)

现在让我们将VARCHAR大小从VARCHAR(8)扩展到VARCHAR(100)-

mysql> alter table DemoTable change Name Name varchar(100);
Records: 4 Duplicates: 0 Warnings: 0

让我们再次检查表的描述-

mysql> desc DemoTable;

这将产生以下输出-

+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| Name  | varchar(100) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
1 row in set (0.01 sec)

扩展varchar的大小后,其中的数据不会受到影响,但是如果减小varchar的大小,则可能导致问题。