📅  最后修改于: 2020-11-28 14:15:01             🧑  作者: Mango
ALTER是用于通过向alter命令添加不同的子句来更改表结构的命令。根据场景,我们需要在alter命令中添加相应的子句。在本章中,我们将讨论alter命令的各种情况。
Alter Table Add是用于将新列以及相应数据类型添加到表中的命令。此命令在此连接中提交事务。
以下是“更改表添加”命令的通用语法。
ALTER TABLE [ IF EXISTS ] tableName ADD [ COLUMN ]
{ [ IF NOT EXISTS ] columnDefinition [ { BEFORE | AFTER } columnName ]
| ( { columnDefinition } [,...] ) }
在此示例中,我们将在表tutorials_tbl中添加新列start_date 。 start_date的数据类型为Date。以下是添加新列的查询。
ALTER TABLE tutorials_tbl ADD start_date DATE;
上面的查询产生以下输出。
(6) rows effected
更改表添加约束是用于向表添加不同约束的命令,例如主键,外键,非null等。
如果所需的索引尚不存在,则会自动创建它们。无法禁用检查唯一约束。此命令在此连接中提交一个打开的事务。
以下是“更改表添加约束”命令的通用语法。
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 [ 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-命令设置列的选择性(1-100)。基于选择性值,我们可以对列的值进行成像。
SET DEFAULT-更改列的默认值。
SET NULL-将列设置为允许NULL。
SET NOT NULL-将列设置为允许NOT NULL。
在此示例中,我们将使用以下查询将表tutorials_tbl的列从Title重命名为Tutorial_Title 。
ALTER TABLE tutorials_tbl ALTER COLUMN title RENAME TO tutorial_title;
上面的查询产生以下输出。
(0) row(s) effected
以类似的方式,我们可以使用ALTER命令执行不同的场景。