Sql简介 专题
专题目录
您的位置:database > Sql简介专题 > SQL Alter Table
SQL Alter Table
作者:--    发布时间:2019-11-20 09:19:20

本教程介绍如何使用sql alter table更改数据库中现有表的结构。

创建新表后,您可能希望更改其结构,因为业务需求会发生变化。 要修改表的结构,请使用alter table语句。 alter table语句用于对现有表执行以下操作:

  • 使用add子句添加新列。
  • 使用modify子句修改列的属性,例如:约束,默认值等。
  • 使用drop子句删除列。

我们将在以下部分详细学习每个操作。

1. sql alter table add列

以下语句说明了带有add子句的alter table,该子句用于向表中添加一个或多个列。

alter table table_name
add new_colum data_type column_constraint [after existing_column];

要向表中添加一个或多个列,需要执行以下步骤:

  • 首先,在alter table子句之后指定要添加table_name,表示列所在的表。
  • 其次,将新列定义放在add子句之后。 如果要在表中指定新列的顺序,可以使用可选子句after existing_column

注意,如果省略after子句,则将在表的最后一列之后添加新列。

下面来看看如何将一些新列添加到在create table教程中创建的courses表的示例。

以下语句将一个名称为credit_hours的新列添加到courses表中。

alter table courses add credit_hours int not null;

使用单个alter table语句向表中添加多个列。 例如,以下语句一次将feemax_limit列添加到courses表中,并将这些列放在course_name列之后。

alter table courses 
add fee numeric (10, 2) after course_name,
add max_limit int after course_name;

2. sql alter table modify列

modify子句用于更改现有列的某些属性,例如,not nullunique和数据类型。

以下语句显示带有modify子句的alter table语句的语法。

alter table table_name
modify column_definition;

请注意,应该修改没有数据的表的列的属性。 因为更改已包含数据的表中列的属性可能会导致永久性数据丢失。

例如,如果列的数据类型为varchar,并且将其更改为int,则数据库系统必须将数据从varchar转换为int。 如果转换失败,数据库系统可能会使用列的默认值,这可能与预期不符。

以下alter table modify语句将fee列的属性更改为not null

alter table courses 
modify fee numeric (10, 2) not null;

3. sql alter table drop列

当表的列已过时且未被任何其他数据库对象(如触发器,视图,存储过程和存储过程)使用时,需要将其从表中删除。

要删除一个或多个列,请使用以下语法:

alter table table_name
drop column_name,
drop colum_name,
...

例如,要删除courses表中的fee列,请使用以下语句。

alter table courses drop column fee;

若要同时删除多个列,请使用以逗号(,)分隔的多个drop column子句。

例如,以下语句删除courses表中的max_limitcredit_hours

alter table courses 
drop column max_limit,
drop column credit_hours;

在本教程中,我们逐步学习了如何使用sql alter table语句在表中添加,修改和删除一个或多个列。


网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册