SQL ALTER表

时间:2020-02-23 14:32:23  来源:igfitidea点击:

我们已经讨论了如何在数据库中创建表,但是在某些情况下,我们想修改已创建的表。
为了修改表,SQL提供了ALTER作为关键字。
我们将尝试了解使用ALTER关键字来详细更改表的用法。

SQL ALTER表

在某些情况下,我们会根据应用程序的现有需求设计和创建表。
考虑将来需要更改的情况,我们需要在现有表中进行修改。
在这种情况下,我们将使用ALTER关键字。
现在,让我们考虑以下场景以进行进一步讨论。

  • 在表中添加新列
  • 从表格中删除一列
  • 更改列的数据类型
  • 向表添加约束
  • 从表中删除约束。

注意:下面提到的所有方案和查询都是针对MySQL数据库的。

我们将考虑以下客户表以进行进一步讨论。

CREATE TABLE `test`.`customer` ( `CustomrId` INT NOT NULL, `CustomerName` VARCHAR(45) NULL, `ProductId` VARCHAR(45) NOT NULL, `State` VARCHAR(45) NULL, PRIMARY KEY (`CustomrId`, `ProductId`), UNIQUE INDEX `CustomrId_UNIQUE` (`CustomrId` ASC) VISIBLE);

1.在表中添加新列

语法

ALTER TABLE table_name ADD column_name datatype;

在上面的语法中,ALTER TABLE是关键字,它告诉数据库表中需要修改,而ADD关键字则表明需要完成列添加。

在客户表中添加int数据类型的customer_age列。

ALTER TABLE test.customer ADD customer_age int;

SQL ALTER表用于添加列

2.从表中删除一列

语法

ALTER TABLE table_name DROP COLUMN column_name;

DROP COLUMN关键字表明需要删除列。

示例:

在客户表中删除int数据类型的customer_age列。

ALTER TABLE test.customer DROP COLUMN customer_age;

3.更改列的数据类型

语法:

ALTER TABLE table_name MODIFY COLUMN column_name datatype;

MODIFY COLUMN关键字告诉数据库需要修改列。

示例:

将productId的数据类型从Varchar更改为Int。

ALTER TABLE test.customer MODIFY COLUMN ProductId int;

4.将约束添加到表

语法:

ALTER TABLE table_name ADD CONSTRAINT MyUniqueConstraint UNIQUE(column1, column2...columnN);

ADD CONSTRAINT关键字告诉数据库需要在表中添加约束。
UNIQUE关键字告诉UNIQUE关键字之后的列将具有唯一值。

示例:

将MyUniqueConstraint添加到客户表。

ALTER TABLE test.customer ADD CONSTRAINT MyUniqueConstraint UNIQUE(CustomerName);

ALTER表,用于向列添加约束

5.从表中删除约束

语法:

ALTER TABLE table_name DROP CONSTRAINT MyUniqueConstraint;

在上面的语法中,DROP CONSTRAINT关键字告诉数据库需要从表中删除约束。

MySQL语法:

ALTER TABLE table_name DROP INDEX MyUniqueConstraint;

示例:

从客户表中删除MyUniqueConstraint。

如果您使用的是MySQL,请遵循Query。

ALTER TABLE test.customer DROP INDEX MyUniqueConstraint;

ALTER表,用于删除列约束