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

mysqlmysqli database更新于 2025/12/25 4:28:17

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

首先我们创建一个表 −

mysql> create table DemoTable(
   Name varchar(8)
);
Query OK, 0 rows affected (1.11 sec)

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

mysql> insert into DemoTable values('John');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('Robert');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('Mike');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Sam');
Query OK, 1 row affected (0.13 sec)

使用 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);
Query OK, 4 rows impacted (1.96 sec)
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 的大小后,其中的数据不会受到影响,但如果减小大小,则可能会导致问题。


相关文章


有用资源