H2資料庫 - 建立



CREATE是一個通用的SQL命令,用於在H2資料庫伺服器中建立表、模式、序列、檢視和使用者。

建立表

建立表是一個用於在當前資料庫中建立使用者定義表的命令。

語法

以下是Create Table命令的通用語法。

CREATE [ CACHED | MEMORY ] [ TEMP | [ GLOBAL | LOCAL ] TEMPORARY ] 
TABLE [ IF NOT EXISTS ] name 
[ ( { columnDefinition | constraint } [,...] ) ] 
[ ENGINE tableEngineName [ WITH tableEngineParamName [,...] ] ] 
[ NOT PERSISTENT ] [ TRANSACTIONAL ] 
[ AS select ] 

透過使用Create Table命令的通用語法,我們可以建立不同型別的表,例如快取表、記憶體表和臨時表。以下是描述給定語法中不同子句的列表。

  • CACHED - 快取表是常規表的預設型別。這意味著行數不受主記憶體限制。

  • MEMORY - 記憶體表是臨時表的預設型別。這意味著記憶體表不應過大,索引資料保留在主記憶體中。

  • TEMPORARY - 關閉或開啟資料庫時會刪除臨時表。基本上,臨時表有兩種型別:

    • GLOBAL型別 - 所有連線都可以訪問。

    • LOCAL型別 - 當前連線可以訪問。

    臨時表的預設型別為全域性型別。臨時表的索引保留在主記憶體中,除非使用CREATE CACHED TABLE建立臨時表。

  • ENGINE - 僅當使用自定義表實現時才需要ENGINE選項。

  • NOT PERSISTENT - 它是一個修飾符,用於將完整的表資料儲存在記憶體中,並且在關閉資料庫時所有行都會丟失。

  • TRANSACTIONAL - 它是一個關鍵字,用於提交開啟的事務,並且此命令僅支援臨時表。

示例

在此示例中,讓我們使用以下給定資料建立一個名為tutorials_tbl的表。

序號 列名 資料型別
1 ID Int
2 標題 Varchar(50)
3 作者 Varchar(20)
4 提交日期 日期

以下查詢用於建立表tutorials_tbl以及給定的列資料。

CREATE TABLE tutorials_tbl ( 
   id INT NOT NULL, 
   title VARCHAR(50) NOT NULL, 
   author VARCHAR(20) NOT NULL, 
   submission_date DATE 
);

上述查詢產生以下輸出。

(0) rows effected 

建立模式

Create Schema是一個用於在特定授權下(在當前註冊的使用者下)建立使用者依賴模式的命令。

語法

以下是Create Schema命令的通用語法。

CREATE SCHEMA [ IF NOT EXISTS ] name [ AUTHORIZATION ownerUserName ] 

在上述通用語法中,AUTHORIZATION是一個用於提供相應使用者名稱的關鍵字。此命令是可選的,這意味著如果我們不提供使用者名稱,則它將考慮當前使用者。執行該命令的使用者必須具有管理員許可權以及所有者許可權。

此命令在此連線中提交開啟的事務。

示例

在此示例中,讓我們使用以下命令在SA使用者下建立一個名為test_schema的模式。

CREATE SCHEMA test_schema AUTHORIZATION sa; 

上述命令產生以下輸出。

(0) rows effected 

建立序列

序列是一個用於生成數字的概念,用於遵循id或任何隨機列值的序列。

語法

以下是create sequence命令的通用語法。

CREATE SEQUENCE [ IF NOT EXISTS ] newSequenceName [ START WITH long ] 
[ INCREMENT BY long ] 
[ MINVALUE long | NOMINVALUE | NO MINVALUE ] 
[ MAXVALUE long | NOMAXVALUE | NO MAXVALUE ] 
[ CYCLE long | NOCYCLE | NO CYCLE ] 
[ CACHE long | NOCACHE | NO CACHE ] 

此通用語法用於建立序列。序列的資料型別為BIGINT。在此序列中,即使回滾事務,值也不會被重複使用。

示例

在此示例中,讓我們使用以下查詢建立一個名為SEQ_ID的序列。

CREATE SEQUENCE SEQ_ID; 

上述查詢產生以下輸出。

(0) rows effected 
廣告

© . All rights reserved.