H2-database-create

提供:Dev Guides
移動先:案内検索

H2データベース-作成

CREATEは、H2データベースサーバーでテーブル、スキーマ、シーケンス、ビュー、およびユーザーを作成するために使用される汎用SQLコマンドです。

テーブルを作成

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 -データベースを閉じたり開いたりするときに一時テーブルが削除されます。 基本的に、一時テーブルは2種類あります-
  • GLOBALタイプ-すべての接続でアクセス可能。
  • LOCALタイプ-現在の接続からアクセス可能。 +一時テーブルのデフォルトタイプはグローバルタイプです。 一時テーブルのインデックスは、CREATE CACHED TABLEを使用して一時テーブルが作成されない限り、メインメモリに保持されます。
  • ENGINE -ENGINEオプションは、カスタムテーブル実装が使用される場合にのみ必要です。
  • NOT PERSISTENT -完全なテーブルデータをメモリ内に保持する修飾子であり、データベースを閉じるとすべての行が失われます。
  • TRANSACTIONAL -オープントランザクションをコミットするキーワードであり、このコマンドは一時テーブルのみをサポートします。

この例では、次のデータを使用して、tutorials_tblという名前のテーブルを作成します。

Sr.No Column Name Data Type
1 ID Int
2 Title Varchar(50)
3 Author Varchar(20)
4 Submission_date Date

次のクエリは、指定された列データとともにテーブル 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 [ IF NOT EXISTS ] name [ AUTHORIZATION ownerUserName ]

上記の一般的な構文では、AUTHORIZATIONはそれぞれのユーザー名を提供するために使用されるキーワードです。 このコマンドはオプションです。ユーザー名を指定しない場合、現在のユーザーが考慮されます。 コマンドを実行するユーザーには、管理者権限と所有者が必要です。

このコマンドは、この接続で開いているトランザクションをコミットします。

この例では、次のコマンドを使用して、SAユーザーの下に test_schema という名前のスキーマを作成します。

CREATE SCHEMA test_schema AUTHORIZATION sa;

上記のコマンドは、次の出力を生成します。

(0) rows effected

シーケンスを作成

シーケンスは、idまたは任意のランダムな列値のシーケンスに従うことにより数値を生成するために使用される概念です。

構文

以下に、シーケンス作成コマンドの一般的な構文を示します。

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