概要
OceanBase 開発者センター ( ODC ) では、GUI でテーブルを作成できます。このトピックでは、ODC コンソールでテーブルを作成する方法について説明します。

前の図に示すように、次の 7 つのステップでテーブルを作成できます。
手順
次の例では、employee という名前のテーブルを ODC コンソールで作成します。このテーブルには、emp_no、birthdate、name、および gender 列が含まれています。次の操作を実行します。
ステップ 1:基本情報の指定
ODC コンソールにログオンし、目的の接続名をクリックして、対応する接続管理ページに移動します。左側のナビゲーションウィンドウで 表+作成 をクリックすると、テーブルのリストが表示されます。テーブルを作成するには、テーブルリストの右上隅にある をクリックするか、上部のナビゲーションバーにある をクリックします。
基本情報 セクションで、テーブル名 と 説明 を指定します。

MySQL モードでは、[既定の文字セット] と [既定の照合順序] も指定する必要があります。
基本情報を入力して [列] ステップに切り替えると、基本情報が送信されます。
ステップ 2:列の設定
次の図と表は、列を追加するときに指定する必要がある情報を示しています。

パラメーター | 説明 |
名前 | 列の名前。 |
型 | 列のデータ型。 データ型の詳細については、「OceanBase Database 開発者ガイド」をご参照ください。 |
長さ | データ型の長さ。 |
スケール | データ型の小数点以下の桁数。 |
非空 | 列の値を指定する必要があるかどうかを指定します。 |
自動インクリメント | 列を自動インクリメント列に設定するかどうかを指定します。このパラメーターは MySQL モードで有効です。 説明 各テーブルには、1 つの自動インクリメント列のみが許可されます。 列が自動インクリメント列に設定されると、他の列の自動インクリメントチェックボックスを選択できません。 |
仮想カラム | 列を仮想カラムに設定するかどうかを指定します。 説明 仮想カラムを設定する場合は、その式を指定する必要があります。 仮想カラムを作成する場合、仮想カラムが依存する式を定義する必要があります。仮想カラムは生成列です。生成列は、仮想生成列または保存生成列です。仮想カラムの値は、列が使用されたときにのみ式に基づいて計算されます。したがって、テーブルにデータを挿入するときに、仮想カラムの値を指定することはできません。 |
デフォルト値/式 | 列のデフォルト値または式。 |
コメント | 列に関する追加情報。 |
次の表は、列設定ページで実行できる操作について説明しています。
ボタン | 説明 |
ツールバー操作 | ページ上部のツールバーを使用して、列を追加または削除できます。 |
行 ID をクリック |
|
行を右クリック | 行を右クリックして選択し、表示されるコンテキストメニューから [コピー] または [下に移動] を選択できます。 |
行をコピーした後、Command + V または Ctrl + V ショートカットキーを使用して行を貼り付けることができます。
ページ下部の補助編集セクションには、選択した列に関する追加情報が表示されます。
[基本情報] と [列] ステップの設定は必須です。他の構成ステップの設定はオプションです。[基本情報] と [列] ステップで設定を指定した後、[コミット] と [SQL 文の確認] をクリックしてテーブルを作成できます。
ステップ 3:インデックスの設定
テーブルに大量のデータが含まれている場合は、インデックスを使用してデータクエリを高速化できます。インデックスは、テーブル内の 1 つ以上の列の値を事前にソートするデータ構造です。インデックスを使用することにより、条件を満たすレコードを直接見つけることができます。
次の図と表は、インデックスを設定するときに指定する必要がある情報を示しています。

フィールド | 説明 |
インデックス名 | インデックスの名前。 |
範囲 | デフォルト値は GLOBAL です。有効な値:GLOBAL および LOCAL。 |
メソッド | デフォルト値は BTREE で、グローバルインデックスに適用されます。有効な値:Empty、BTREE、および HASH。
|
インデックスタイプ | デフォルト値は NORMAL です。有効な値:NORMAL、UNIQUE、および FULLTEXT。
|
列 | インデックスを作成する列。インデックス付き列の順序に注意してください。 |
非表示 | インデックスを非表示にするかどうかを指定します。 |
インデックス設定ページには、次のアイコンがあります。
アイコン | 説明 |
[作成] | このアイコンをクリックして、インデックスを追加します。 |
[削除] | このアイコンをクリックして、選択したインデックスを削除します。 |
ステップ 4:制約の設定
制約は、テーブルのデータルールを指定するために使用されます。制約に違反するデータ操作は終了します。

ODC は、次の 4 つのテーブル制約をサポートしています。
プライマリキー制約:テーブルの各データ行を一意に識別するプライマリキーを定義します。プライマリキー制約は、フィールドまたはフィールドのグループにすることができます。テーブルには 1 つのプライマリキー制約のみを設定でき、構成後は制約を編集できません。
一意制約:フィールドまたはフィールドのグループのデータがテーブル内で一意であることを保証します。 1 つのテーブルに複数の一意制約を設定できます。
外部キー制約:2 つのテーブルの 1 つ以上の列を関連付けます。外部キー制約は、関連付けられたテーブル間のデータの整合性と完全性を維持するために使用されます。外部キー制約の設定が完了すると、新しい制約を作成したり、既存の制約を編集したりすることはできません。
チェック制約:データを編集するときに、構成されたチェックルールに基づいてデータベース内のデータをチェックします。チェックに合格した後でのみ、データの変更が許可されます。
OceanBase Database は、MySQL モードと Oracle モードで異なる制約をサポートしており、異なる制約には異なる情報が必要です。したがって、選択した制約とページの要件に基づいて必要な情報を指定する必要があります。
フィールド | 説明 |
制約名 | 制約の名前。 |
列情報 | 制約として指定されたフィールドまたはフィールドのグループ。 |
関連スキーマ | 外部キー制約が使用される場合に、関連付けられたテーブルが配置されているスキーマ。関連付けられたテーブルは親テーブルです。このフィールドは Oracle モードでのみ有効です。 |
関連データベース | 外部キー制約が使用される場合に、関連付けられたテーブルが配置されているデータベース。関連付けられたテーブルは親テーブルです。このフィールドは MySQL モードでのみ有効です。 |
関連テーブル | 外部キー制約が使用される場合に、関連付けられたテーブル。関連付けられたテーブルは親テーブルです。 |
関連フィールド | 外部キー制約が使用される場合に、関連付けられたフィールド。関連付けられたフィールドは親テーブルにあります。 |
削除 | 関連付けられたテーブルのデータが削除されたときに、現在のテーブルで実行される操作を指定します。現在のテーブルは子テーブルで、関連付けられたテーブルは親テーブルです。 CASCADE、NO ACTION、RESTRICT、および SET NULL の 4 つのタイプの操作がサポートされています。 OceanBase Database は、MySQL モードと Oracle モードで異なる外部キー操作をサポートしています。
重要 現在、OceanBase Database は SET NULL をサポートしていません。 構文の詳細については、「テーブルの作成」または MySQL または Oracle の公式ドキュメントをご参照ください。 |
更新 | 関連付けられたテーブルのデータが更新されたときに、現在のテーブルで実行される操作を指定します。現在のテーブルは子テーブルで、関連付けられたテーブルは親テーブルです。 CASCADE、NO ACTION、RESTRICT、および SET NULL の 4 つのタイプの操作がサポートされています。 OceanBase Database は、MySQL モードと Oracle モードで異なる外部キー操作をサポートしています。
重要 現在、OceanBase Database は SET NULL をサポートしていません。 構文の詳細については、「テーブルの作成」または MySQL または Oracle の公式ドキュメントをご参照ください。 |
チェック条件 | チェック制約が有効な場合に、データ検証のチェックルールを指定します。 |
制約設定ページには、次のアイコンがあります。
アイコン | 説明 |
[作成] | このアイコンをクリックして、制約を追加します。 |
[削除] | このアイコンをクリックして、選択した制約を削除します。 |
ステップ 5:パーティション分割ルールの設定

大量のデータを含むテーブルをパーティション分割できます。テーブルがパーティション分割されると、テーブル内のデータは複数の表領域に格納されます。データベースは、クエリのためにテーブル全体をスキャンしません。
MySQL モードでは、OceanBase Database は、Key、Hash、Range、Range Columns、List、および List Columns の 6 つのパーティション分割方法をサポートしています。
Oracle モードでは、OceanBase Database は、List、Range、および Hash の 3 つのパーティション分割方法をサポートしています。
MySQL モードのパーティションの定義は、Oracle モードの定義とは異なります。したがって、次のフィールドの値はモードによって異なります。選択したパーティション分割方法に基づいて、次のフィールドを指定する必要があります。
フィールド
説明
パーティション分割方法
パーティション分割方法を指定します。 MySQL モードでサポートされているパーティション分割方法は、Oracle モードでサポートされているパーティション分割方法とは異なります。
範囲パーティション分割:順序付けられ、連続しており、重複しない範囲の列値を持つ複数の行がパーティションに割り当てられます。
リストパーティション分割:テーブルは列挙値に基づいてパーティション分割されます。
ハッシュパーティション分割:テーブルは指定された数のパーティションに基づいてパーティション分割されます。明確なパターンや範囲のないデータを格納するテーブルの場合、ハッシュパーティション分割を使用して、パーティション列の値を HASH アルゴリズムに基づいて異なるパーティションにランダムに分散できます。
キーパーティション分割:このパーティション分割方法は HASH パーティション分割に似ています。違いは、キーパーティション分割では 1 つ以上の列の計算のみがサポートされ、MySQL サーバーが独自のハッシュ関数を提供することです。キーパーティション分割には、少なくとも 1 つの INT 型の列が必要です。
パーティション分割の詳細については、「概要」をご参照ください。
フィールド
パーティションキーとして使用される列。
式
パーティションは式の戻り値に基づいて分割されます。パーティション式は Oracle モードではサポートされていません。
パーティション
パーティション方法 で指定された値に基づいて、パーティション名、パーティション数、上限、値列挙 などの情報を指定する必要がある場合があります。複数のパーティションを追加し、選択したフィールドをドラッグして次数を調整できます。
ステップ 6:SQL 文の確認

[送信] をクリックすると、SQL 確認ページで文を表示できます。長い句を表示するには、ページの右下隅にある [SQL チェック] と [フォーマット] をクリックします。
構文:
CREATE TABLE table_name (column_name column_type, column_name column_type,.......);
パラメーター
パラメーター | 説明 |
CREATE TABLE | 指定された名前のテーブルの作成を示すキーワード。テーブルを作成する権限が必要です。 |
table_name | テーブルの名前。テーブル名は、識別子の命名規則に準拠している必要があります。 |
column_name column_type | テーブル内の列の名前とデータ型。複数の列を作成するには、タプルをコンマ (,) で区切ります。 |
ステップ 7:テーブルの作成の完了
[実行] をクリックします。テーブルが作成されると、左側のナビゲーション ウィンドウのテーブル リストに [employee] テーブルが表示されます。

テーブルを管理するには、左側のナビゲーションウィンドウでテーブル名を右クリックし、コンテキストメニューから必要な操作を選択します。コンテキストメニューには、[テーブル構造の表示]DDL の表示テーブルデータの表示CreateTableインポートエクスポートダウンロードモックデータ[SQL ウィンドウを開く]コピー名前の変更削除更新、、、、、、、、、、、、 のオプションがあります。
詳細については、「テーブルデータの管理」をご参照ください。
SELECT 文を使用して、新しいテーブルのデータをクエリできます。
構文:
SELECT
column_name,
column_name
FROM
table_name [WHERE 句] [LIMIT N] [ OFFSET M]
パラメーター
パラメーター | 説明 |
SELECT | 文の名前を示すキーワード。 SELECT 文を使用して、1 つ以上のレコードを読み取ることができます。 |
column_name | クエリ対象の列の名前。アスタリスク (*) を使用してすべての列をクエリできます。 |
WHERE | 条件句のキーワード。 |
LIMIT | 返されるレコードの数。 |
OFFSET | SELECT 文がクエリを開始するデータオフセット。デフォルトのオフセットは 0 です。 |
例:
SELECT `emp_no`, `birthdate`, `name`, `gender` FROM `employee`;
