
- HSQLDB 教程
- HSQLDB - 首頁
- HSQLDB - 簡介
- HSQLDB - 安裝
- HSQLDB - 連線
- HSQLDB - 資料型別
- HSQLDB - 建立表
- HSQLDB - 刪除表
- HSQLDB - 插入查詢
- HSQLDB - 選擇查詢
- HSQLDB - WHERE 子句
- HSQLDB - 更新查詢
- HSQLDB - DELETE 子句
- HSQLDB - LIKE 子句
- HSQLDB - 排序結果
- HSQLDB - 連線
- HSQLDB - NULL 值
- HSQLDB - 正則表示式
- HSQLDB - 事務
- HSQLDB - ALTER 命令
- HSQLDB - 索引
- HSQLDB 有用資源
- HSQLDB - 快速指南
- HSQLDB - 有用資源
- HSQLDB - 討論
HSQLDB - ALTER 命令
無論何時需要更改表名或欄位名、更改欄位順序、更改欄位資料型別或任何表結構,都可以使用 ALTER 命令來實現。
示例
讓我們考慮一個使用不同場景解釋 ALTER 命令的示例。
使用以下查詢建立一個名為 testalter_tbl 的表,其中包含欄位 id 和 name。
//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;
成功執行上述查詢後,可以使用以下命令瞭解 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 命令。
使用以下查詢向表 testalter_tbl 新增一個名為 NAME 的列。
ALTER TABLE testalter_tbl ADD name VARCHAR(10);
成功執行上述查詢後,可以使用以下命令瞭解 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 | | PUBLIC |TESTALTER_TBL| NAME | 12 | VARCHAR | 10 | +------------+-------------+------------+-----------+-----------+------------+
更改列定義或名稱
無論何時需要更改列定義,請使用 MODIFY 或 CHANGE 子句以及 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 | +------------+-------------+------------+-----------+-----------+------------+