MySQL ALTER TABLE 命令修改表结构实例
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 数据库管理的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









