- 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 命令執行不同的場景。