MySQL ALTER命令

ALTER命令用于修改数据库中的表结构。你可以使用此命令添加、删除或修改表中的列,还可以添加或删除索引等。

添加列

使用ALTER TABLE语句的ADD子句可以在现有表中添加新的列。基本语法如下:

例如,假设有一个名为employees的表,我们可以向其添加一个新的列email来存储员工的电子邮件地址:

这将向employees表添加一个名为email的新列,该列的数据类型为VARCHAR,并且可以存储最多50个字符。

删除列

使用ALTER TABLE语句的DROP子句可以从现有表中删除列。基本语法如下:

例如,如果我们想从employees表中删除email列,可以使用以下SQL语句:

执行上述命令后,email列将被删除。

修改列

使用ALTER TABLE语句的MODIFY子句可以更改现有表中列的数据类型或其他属性。基本语法如下:

例如,如果employees表中的salary列最初定义为INT类型,但现在我们希望将其更改为DECIMAL(10,2)类型,可以使用以下SQL语句:

这将把salary列的数据类型更改为DECIMAL(10,2),允许存储更精确的小数值。

更改列名

使用ALTER TABLE语句的CHANGE子句可以更改现有表中列的名称。基本语法如下:

例如,如果我们想将employees表中的name列重命名为full_name,可以使用以下SQL语句:

这将把name列重命名为full_name,并保持数据类型不变。

添加主键

使用ALTER TABLE语句的ADD PRIMARY KEY子句可以为现有表添加主键约束。基本语法如下:

例如,如果employees表还没有主键,我们可以通过以下SQL语句为其添加一个基于employee_id列的主键:

这将确保employee_id列中的每个值都是唯一的,并且不允许有空值。

删除主键

使用ALTER TABLE语句的DROP PRIMARY KEY子句可以从现有表中删除主键约束。基本语法如下:

例如,如果我们想从employees表中删除主键约束,可以使用以下SQL语句:

这将删除employees表上的主键约束。

添加外键

使用ALTER TABLE语句的ADD FOREIGN KEY子句可以为现有表添加外键约束。基本语法如下:

例如,如果我们有两个表:orderscustomers,并且想要通过customer_id列建立它们之间的关系,可以使用以下SQL语句:

这将确保orders表中的customer_id列只包含customers表中存在的customer_id值。

删除外键

使用ALTER TABLE语句的DROP FOREIGN KEY子句可以从现有表中删除外键约束。基本语法如下:

例如,如果我们想从orders表中删除名为fk_customer_id的外键约束,可以使用以下SQL语句:

这将删除orders表上的名为fk_customer_id的外键约束。

添加唯一约束

使用ALTER TABLE语句的ADD UNIQUE子句可以为现有表添加唯一约束。基本语法如下:

例如,如果我们想确保employees表中的email列中没有任何重复的电子邮件地址,可以使用以下SQL语句:

这将确保email列中的所有值都是唯一的。

删除唯一约束

使用ALTER TABLE语句的DROP INDEX子句可以从现有表中删除唯一约束。基本语法如下:

例如,如果我们想从employees表中删除名为email_unique的唯一约束,可以使用以下SQL语句:

这将删除employees表上的名为email_unique的唯一约束。

添加默认值

使用ALTER TABLE语句的MODIFY子句可以为现有表中的列设置默认值。基本语法如下:

例如,如果我们想为employees表中的status列设置默认值为'active',可以使用以下SQL语句:

这将确保在插入新行时,如果没有为status列提供值,则自动使用'active'作为默认值。

删除默认值

使用ALTER TABLE语句的MODIFY子句可以移除现有表中列的默认值。基本语法如下:

例如,如果我们想从employees表中的status列移除默认值,可以使用以下SQL语句:

这将移除status列的默认值设置,使该列可以接受任何值或空值。

以上是ALTER命令的一些常见用法,这些命令可以帮助你在MySQL数据库中有效地管理和修改表结构。

上一篇: MySQL 事务
下一篇: MySQL 索引
纠错
反馈