HyperSQL教程

HSQLDB 更改命令

每当需要更改表或字段的名称、更改字段的顺序、更改字段的数据类型或任何表结构时,都可以使用 ALTER 命令实现相同的目的。

示例

让我们考虑一个使用不同场景解释 ALTER 命令的示例。
使用以下查询创建名为 testalter_tbl 的表,其中包含字段 idname
//below given query is to create a table testalter_tbl table.
create table testalter_tbl(id INT, name VARCHAR(10));
//below given query is to verify the table structure testalter_tbl.
Select * From INFORMATION_SCHEMA.SYSTEM_COLUMNS as C Where C.TABLE_SCHEM =
   'PUBLIC' AND C.TABLE_NAME = 'TESTALTER_TBL';
执行上述查询后,您将收到以下输出。
+------------+-------------+------------+-----------+-----------+------------+
|TABLE_SCHEM |  TABLE_NAME | COLUMN_NAME| DATA_TYPE | TYPE_NAME | COLUMN_SIZE|
+------------+-------------+------------+-----------+-----------+------------+
| public  |TESTALTER_TBL|     ID     |     4     |   INTEGER |     4      |
|   public   |TESTALTER_TBL|    NAME    |     12    |   VARCHAR |     10     |
+------------+-------------+------------+-----------+-----------+------------+

删除或添加列

每当您想从 HSQLDB 表中删除现有列时,您都可以将 DROP 子句与 ALTER 命令一起使用。
使用以下查询从表 testalter_tbl 中删除列 ( name)。
ALTER TABLE testalter_tbl DROP name;
成功执行上述查询后,您可以使用以下命令了解名称字段是否从表 testalter_tbl 中删除。
Select * From INFORMATION_SCHEMA.SYSTEM_COLUMNS as C Where C.TABLE_SCHEM =
   'PUBLIC' AND C.TABLE_NAME = 'TESTALTER_TBL';
执行上述命令后,您将收到以下输出。
+------------+-------------+------------+-----------+-----------+------------+
|TABLE_SCHEM |  TABLE_NAME | COLUMN_NAME| DATA_TYPE | TYPE_NAME | COLUMN_SIZE|
+------------+-------------+------------+-----------+-----------+------------+
|  public    |TESTALTER_TBL|      ID    |      4    |   INTEGER |     4      |
+------------+-------------+------------+-----------+-----------+------------+
每当您想将任何列添加到 HSQLDB 表中时,您都可以将 ADD 子句与 ALTER 命令一起使用。
使用以下查询将名为 NAME 的列添加到表 testalter_tbl
ALTER TABLE testalter_tbl ADD name VARCHAR(10);
成功执行上述查询后,您可以使用以下命令了解名称字段是否添加到表 testalter_tbl中。
Select * From INFORMATION_SCHEMA.SYSTEM_COLUMNS as C Where C.TABLE_SCHEM =
   'PUBLIC' AND C.TABLE_NAME = 'TESTALTER_TBL';
执行上述查询后,您将收到以下输出。
+------------+-------------+------------+-----------+-----------+------------+
|TABLE_SCHEM |  TABLE_NAME | COLUMN_NAME| DATA_TYPE | TYPE_NAME | COLUMN_SIZE|
+------------+-------------+------------+-----------+-----------+------------+
| public  |TESTALTER_TBL|      ID    |     4     |   INTEGER |     4      |
|  public    |TESTALTER_TBL|     NAME   |     12    |   VARCHAR |     10     |
+------------+-------------+------------+-----------+-----------+------------+

更改列定义或名称

每当需要更改列定义时,请使用 MODIFYCHANGE 子句以及 ALTER 命令。
让我们考虑一个示例,该示例将解释如何使用 CHANGE 子句。表 testalter_tbl 包含两个字段-id 和 name-分别具有数据类型 int 和 varchar。现在让我们尝试将 id 的数据类型从 INT 更改为 BIGINT。以下是进行更改的查询。
ALTER TABLE testalter_tbl CHANGE id id BIGINT;
成功执行上述查询后,可以使用以下命令验证表结构。
Select * From INFORMATION_SCHEMA.SYSTEM_COLUMNS as C Where C.TABLE_SCHEM =
   'PUBLIC' AND C.TABLE_NAME = 'TESTALTER_TBL';
执行上述命令后,您将收到以下输出。
+------------+-------------+------------+-----------+-----------+------------+
|TABLE_SCHEM |  TABLE_NAME | COLUMN_NAME| DATA_TYPE | TYPE_NAME | COLUMN_SIZE|
+------------+-------------+------------+-----------+-----------+------------+
| public  |TESTALTER_TBL|      ID    |     4     |   BIGint  |     4      |
|  public    |TESTALTER_TBL|     NAME   |     12    |   VARCHAR |     10     |
+------------+-------------+------------+-----------+-----------+------------+
现在让我们尝试将 testalter_tbl 表中列 NAME 的大小从 10 增加到 20。以下是使用 MODIFY 子句和 ALTER 命令实现此目的的查询。
ALTER TABLE testalter_tbl MODIFY name VARCHAR(20);
成功执行上述查询后,可以使用以下命令验证表结构。
Select * From INFORMATION_SCHEMA.SYSTEM_COLUMNS as C Where C.TABLE_SCHEM =
   'PUBLIC' AND C.TABLE_NAME = 'TESTALTER_TBL';
执行上述命令后,您将收到以下输出。
+------------+-------------+------------+-----------+-----------+------------+
|TABLE_SCHEM |  TABLE_NAME | COLUMN_NAME| DATA_TYPE | TYPE_NAME | COLUMN_SIZE|
+------------+-------------+------------+-----------+-----------+------------+
| public  |TESTALTER_TBL|    ID      |      4    |    BIGint |     4      |
|  public    |TESTALTER_TBL|    NAME    |     12    |   VARCHAR |    20      |
+------------+-------------+------------+-----------+-----------+------------+
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4