- H2 数据库教程
- H2 数据库 - 首页
- H2 数据库 - 简介
- H2 数据库 - 安装
- H2 数据库 - 数据操作
- H2 数据库 - 查询 (Select)
- H2 数据库 - 插入 (Insert)
- H2 数据库 - 更新 (Update)
- H2 数据库 - 删除 (Delete)
- H2 数据库 - 备份
- H2 数据库 - 调用 (Call)
- H2 数据库 - 解释执行计划 (Explain)
- H2 数据库 - 合并 (Merge)
- H2 数据库 - 显示 (Show)
- H2 数据库 - 数据定义
- H2 数据库 - 创建 (Create)
- H2 数据库 - 修改表结构
- H2 数据库 - 删除 (Drop)
- H2 数据库 - 清空 (Truncate)
- H2 数据库 - 提交 (Commit)
- H2 数据库 - 授权 (Grant)
- H2 数据库 - 保存点 (Savepoint)
- H2 数据库 - 回滚 (Rollback)
- H2 数据库 - JDBC 连接
- H2 数据库有用资源
- H2 数据库 - 快速指南
- H2 数据库 -有用资源
- H2 数据库 - 讨论
H2 数据库 - 修改表结构
ALTER 命令用于通过向 ALTER 命令添加不同的子句来更改表结构。根据场景,我们需要向 ALTER 命令添加相应的子句。本章将讨论 ALTER 命令的各种场景。
添加列 (Alter Table Add)
ALTER TABLE ADD 命令用于向表中添加新列及其相应的数据类型。此命令会提交此连接中的事务。
语法
以下是 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
添加约束 (Alter Table Add Constraint)
ALTER TABLE ADD CONSTRAINT 命令用于向表添加不同的约束,例如主键、外键、非空等。
如果所需索引尚不存在,则会自动创建。无法禁用对唯一约束的检查。此命令会提交此连接中打开的事务。
语法
以下是 ALTER TABLE ADD CONSTRAINT 命令的通用语法。
ALTER TABLE [ IF EXISTS ] tableName ADD constraint [ CHECK | NOCHECK ]
示例
在此示例中,我们将使用以下查询,向 tutorials_tbl 表的 id 列添加一个名为 (tutorials_tbl_pk) 的主键约束。
ALTER TABLE tutorials_tbl ADD CONSTRAINT tutorials_tbl_pk PRIMARYKEY(id);
上述查询将产生以下输出。
(6) row (s) effected
重命名约束 (Alter Table Rename Constraint)
此命令用于重命名特定关系表中的约束名称。此命令会提交此连接中打开的事务。
语法
以下是 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 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 - 将列设置为不允许 NULL。
示例
在此示例中,我们将使用以下查询将 tutorials_tbl 表的列名称从 Title 更改为 Tutorial_Title。
ALTER TABLE tutorials_tbl ALTER COLUMN title RENAME TO tutorial_title;
上述查询将产生以下输出。
(0) row(s) effected
同样,我们可以使用 ALTER 命令执行不同的场景。