ALTER是一个用于通过向 alter 命令添加不同子句来更改表结构的命令.根据场景,我们需要在alter命令中添加相应的子句.在本章中,我们将讨论alter命令的各种场景.
更改表添加
更改表添加是用于添加新列的命令表格以及相应的数据类型.此命令在此连接中提交事务.
语法
以下是Alter Table Add命令的通用语法.
ALTER TABLE [ IF EXISTS ] tableName ADD [ COLUMN ] { [ IF NOT EXISTS ] columnDefinition [ { BEFORE | AFTER } columnName ] | ( { columnDefinition } [,...] ) }
示例
在此示例中,我们将添加一个新列 start_date 到表 tutorials_tbl . start_date的数据类型是Date.以下是添加新列的查询.
ALTER TABLE tutorials_tbl ADD start_date DATE;
上述查询产生以下输出.
(6) rows effected
更改表格添加约束
更改表格添加约束是用于向表格添加不同约束的命令例如主键,外键,非空等等.
如果所需索引尚不存在,则会自动创建它们.无法禁用检查唯一约束.此命令在此连接中提交一个打开的事务.
语法
以下是Alter表add constraint命令的通用语法.
ALTER TABLE [ IF EXISTS ] tableName ADD constraint [ CHECK | NOCHECK ]
示例
在这个例子中,让我们添加一个主键约束(tutorials_tbl_pk)到表 tutorials_tbl 的列id,使用以下查询.
ALTER TABLE tutorials_tbl ADD CONSTRAINT tutorials_tbl_pk PRIMARYKEY(id);
上述查询产生以下输出.
(6) row (s) effected
更改表重命名约束
此命令用于重命名特定的约束名称关系表.此命令在此连接中提交一个打开的事务.
语法
以下是Alter Table Rename Constraint命令的通用语法.
ALTER TABLE [ IF EXISTS ] tableName RENAME oldConstraintName TO newConstraintName
使用此语法时,确保旧约束名称应与相应列一起存在.
示例
在此示例中,我们将更改主键约束名称表 tutorials_tbl 从 tutorials_tbl_pk 到 tutorials_tbl_pk_constraint .以下是要执行此操作的查询.
ALTER TABLE tutorials_tbl RENAME CONSTRAINT tutorials_tbl_pk TO tutorials_tbl_pk_constraint;
以上查询产生以下输出.
(1) row (s) effected
更改表格更改列
此命令用于更改结构和属性特定表的列.更改属性意味着更改列的数据类型,重命名列,更改标识值或更改选择性.
语法
以下是Alter Table Alter Column命令的通用语法.
ALTER TABLE [ IF EXISTS ] tableName ALTER COLUMN columnName { { dataType [ DEFAULT expression ] [ [ NOT ] NULL ] [ AUTO_INCREMENT | IDENTITY ] } | { RENAME TO name } | { RESTART WITH long } | { SELECTIVITY int } | { SET DEFAULT expression } | { SET NULL } | { SET NOT NULL } }
在上面的语法 :
RESTART : 命令更改自动增量列的下一个值.
SELECTIVITY : command设置列的选择性(1-100).根据选择性值,我们可以对列的值进行成像.
SET DEFAULT : 更改列的默认值.
SET NULL : 将列设置为允许NULL.
SET NOT NULL : 将列设置为允许NOT NULL.
示例
在此示例中,我们将重命名使用以下查询从标题到 Tutorial_Title 的表 tutorials_tbl 的列.
ALTER TABLE tutorials_tbl ALTER COLUMN title RENAME TO tutorial_title;
上述查询产生以下输出.
(0) row(s) effected
以类似的方式,我们可以使用ALTER命令执行不同的场景.