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表,用于删除列约束