MySQL ALTER TABLE 命令修改表结构实例

追风的人
追风的人
发布时间:2026-10-13| 2人浏览过
原创

MySQL 的 ALTER TABLE 语句是管理数据库表结构的核心工具,支持添加/删除字段、修改数据类型、设置或删除主键及索引等操作。本文将通过创建示例表并执行具体的增删改查命令,展示如何直观地变更表结构及其验证方法。

准备工作:创建初始表

为了演示后续的修改操作,首先需要创建一个基础表 myTable。该表仅包含一个名为 ID 的整数字段。

第1步:建表并验证初始结构

目的:建立测试环境,观察未修改前的字段属性。
动作:执行创建语句并使用 DESC 查看。

mysql> CREATE TABLE myTable(
->   ID SMALLINT
-> );

mysql> desc myTable;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| ID    | smallint(6) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

此时,ID 字段允许为 null(Null: YES),且没有主键标识(Key: 为空)。

实例一:添加字段、修改类型及设置主键

在已有表的基础上,我们需要增加一个数量字段,调整原有 ID 的类型限制,并将其设为主键。

第2步:执行结构变更 SQL

目的:一次性完成多结构修改。
参数:使用 ADD COLUMN 添加新列,MODIFY 修改列定义,ADD PRIMARY KEY 定义主键。

mysql> ALTER TABLE myTable
->   ADD COLUMN Quantity SMALLINT UNSIGNED NOT NULL,
->   MODIFY ID SMALLINT UNSIGNED NOT NULL,
->   ADD PRIMARY KEY (ID);

第3步:验证修改结果

完成判断:再次执行 desc myTable,确认字段变化是否符合预期。

desc myTable;
+----------+------------------+------+-----+---------+-------+
| Field    | Type             | Null | Key | Default | Extra |
+----------+------------------+------+-----+---------+-------+
| ID       | smallint(5) unsigned | NO   | PRI |         |       |
| Quantity | smallint(5) unsigned | NO   |     |         |       |
+----------+------------------+------+-----+---------+-------+

结果分析:

  • ID 字段:Null 变为 NO,Type 增加 UNSIGNED,Key 显示为 PRI(主键)。
  • Quantity 字段:成功新增,类型为无符号小整数,且不允许为空。

实例二:删除字段与移除主键

基于实例一的结构,演示如何撤销之前的部分修改。

第4步:执行删除操作 SQL

目的:清理不需要的字段并解除主键约束。
动作:使用 DROP COLUMN 和 DROP PRIMARY KEY。

mysql> ALTER TABLE myTable
->   DROP COLUMN Quantity,
->   DROP PRIMARY KEY;

第5步:最终结构验证

mysql> desc myTable;
+-------+------------------+------+-----+---------+-------+
| Field | Type             | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+-------+
| ID    | smallint(5) unsigned | NO   |     |         |       |
+-------+------------------+------+-----+---------+-------+

结果分析:

  • Quantity 字段已不存在于表中。
  • ID 字段虽然保留了修改后的类型(UNSIGNED)和非空属性,但 Key 栏不再显示 PRI,说明主键已成功移除。

以上就是 MySQL ALTER TABLE 命令修改表结构的详细内容,更多关于 MySQL 数据库管理的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。