すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB for OceanBase:テーブルを作成する

最終更新日:Jan 21, 2025

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

背景情報

論理テーブル

ODC V4.3.2 以降のバージョンでは、複数の (または単一の) 物理データベースを論理データベースに構成し、論理テーブルを構成して、複雑で大規模なシャーディングデータベースとテーブルをクエリおよび管理することができます。詳細については、「論理データベース管理」をご参照ください。

説明

論理データベース権限がない場合は、プロジェクト/チケットからデータベース権限を申請できます。

論理テーブルの式

ルールタイプ

ルール名

単純なルール

名前に数値順に増加する数値が含まれるテーブルを作成する

db.test_[0-7]: 名前に数値順に増加する数値が含まれる 8 つのテーブルを作成します。

名前に同じ桁数の数値順に増加する数値が含まれるテーブルを作成する

  • db.test_[00-07]: 名前に 2 桁の数値順に増加する数値が含まれる 8 つのテーブルを作成します。

  • db.test_[000-007]: 名前に 3 桁の数値順に増加する数値が含まれる 8 つのテーブルを作成します。

  • db.test_[0000-0007]: 名前に 4 桁の数値順に増加する数値が含まれる 8 つのテーブルを作成します。

名前に指定されたステップで増加する数値が含まれるテーブルを作成する

db.test_[0-8:2]: db.test_0db.test_2db.test_4db.test_6db.test_8 という名前の 5 つのテーブルを作成します。ステップは 2 です。

名前に同じ桁数の数値で、指定されたステップで増加する数値が含まれるテーブルを作成する

db.test_[00-07:3]: db.test_00db.test_03db.test_06 という名前の 3 つのテーブルを作成します。ステップは 3 です。

名前の中央部分に増加する数値が含まれるテーブルを作成する

db.test_[00-31]_t: 中央部分に 00 から 31 までの数値が含まれるテーブルを作成します。

複数レベルのルール

名前に月と日付を表す数値が含まれるテーブルを作成する

db.test_[01-12]_[01-31]: 12 か月の 1 日目から 31 日目を表す数値が名前に含まれるテーブルを作成します。作成されるテーブルの総数は 12 × 31 です。

名前に指定されたステップで増加する月と日付を表す数値が含まれるテーブルを作成する

db.test_[01-12:2]_[01-31:2]: 奇数月の奇数日を表す数値が名前に含まれるテーブルを作成します。作成されるテーブルの総数は 6 × 16 です。

データベースとテーブルのルール

同じ名前のテーブルを作成する

db_[00-31].test: 00 から 31 まで番号が付けられたデータベースに test という名前のテーブルを作成します。

テーブルを作成し、指定されたデータベースに均等に分散する

db_[00-31].test[0000-1023]: 1,024 個のテーブルを作成し、00 から 31 まで番号が付けられたデータベースに均等に分散します。

列挙ルール

単純な列挙に基づいてテーブルを作成する

db.test_[1,3,6,8,9]: 指定されたデータベースに 5 つのテーブルを作成します。

複雑な列挙に基づいてテーブルを作成する

複数の式を使用してテーブルを作成し、指定されたデータベースに均等に分散します。例:db.test_[1,3,6,8,9]db.test_[2,4,5,7,10]

データベースの列挙ルール

指定されたデータベースに同じテーブルを作成する

db_[00-31].test_[[00-31]]: 00 から 31 まで番号が付けられた各データベースに test_[00-31] という名前のテーブルを作成します。

指定されたデータベースに列挙ルールに基づいてテーブルを作成する

db_01.test_[1,2,4,6,7],db_02.test_[2,3,5,7,9],db_03.test_[1,4,6,7,9] は、3 つのデータベースに指定された名前の 5 つのテーブルを作成します。

異なるデータベースに異なる数のテーブルを作成する

db_01.test_[1-7],db_02.test_[10-15]: データベース db_01 に 7 つのテーブルを作成し、データベース db_02 に 6 つのテーブルを作成します。

テーブルを作成する手順

image

手順は 7 つのステップで構成されています。

  1. 基本情報を指定します。

  2. テーブルを作成します。

  3. インデックスを設定します。(オプション)

  4. 制約を設定します。(オプション)

  5. パーティション分割ルールを設定します。(オプション)

  6. SQL 文を確認します。

  7. テーブルの作成を完了します。

次の例では、employee という名前のテーブルが ODC コンソールで作成されます。テーブルには、emp_nobirthdaynamegender 列が含まれています。

説明

このトピックで使用されているデータは例です。必要に応じて実際のデータに置き換えることができます。

手順

物理ライブラリにテーブルを作成する

ステップ 1: 基本情報を指定する

  1. ODC コンソールにログインし、目的の接続の名前をクリックして、対応する接続管理ページに移動します。左側のナビゲーションウィンドウの をクリックして、テーブルを表示できます。テーブルを作成するには、テーブルリストの右上隅にあるプラス記号 () をクリックするか、上部ナビゲーションバーの をクリックします。左側のナビゲーション ウィンドウでテーブルを表示します。テーブルを作成するには、プラス記号(+) をクリックするか、テーブル リストの右上隅にある 作成上部のナビゲーション バーにあります。

  2. 次の 基本情報セクションで、設定しますテーブル名および 説明パラメーター。

    image.png

    説明
    • MySQL モードでは、[デフォルトの文字セット] パラメーターと [デフォルトの照合順序] パラメーターも設定する必要があります。

    • 基本情報を指定して「列の設定」ステップに進むと、基本情報が送信されます。

ステップ 2: 列を設定する

説明

ODC V4.2.3 以降では、空間データ型の列を含むテーブルを MySQL モードの OceanBase Database または MySQL Database に作成できます。

次の図と表は、列を追加するときに指定する必要がある情報を示しています。

image

次の表は、列設定ページで実行できる操作について説明しています。

操作

説明

ツールバー操作

ページ上部のツールバーを使用して、列を追加または削除できます。

行 ID をクリックする

  • 行 ID をクリックすると、行を選択し、行の追加または削除を可能にするコンテキストメニューを表示できます。

  • 行番号をクリックして行を選択し、行をドラッグして行全体の順序を調整できます。

行を右クリックする

行を右クリックして選択し、表示されるコンテキストメニューから [コピー] または [下へ移動] を選択できます。

説明
  • 行をコピーした後、Command + V または Ctrl + V ショートカットキーを使用して行を貼り付けることができます。

  • ページ下部の補助編集セクションには、選択した列に関する追加情報が表示されます。

  • 基本情報と列の設定は必須です。他の構成ステップの設定はオプションです。基本情報と列の設定を指定した後、設定を送信し、SQL 文を確認してテーブルを作成できます。

ステップ 3: インデックスを設定する

テーブルに大量のデータが含まれている場合は、インデックスを使用してデータクエリを高速化できます。インデックスは、テーブル内の 1 つ以上の列の値を事前にソートするデータ構造です。インデックスを使用することにより、条件を満たすレコードを直接見つけることができます。

次の図と表は、インデックスを設定するときに指定する必要がある情報を示しています。

image

インデックス設定ページには、次のアイコンが用意されています。

アイコン

説明

作成

このアイコンをクリックして、インデックスを作成します。

削除

このアイコンをクリックして、選択したインデックスを削除します。

ステップ 4: 制約を設定する

制約は、テーブルのデータルールを指定するために使用されます。制約に違反するデータ操作は終了します。

image

ODC は、次の 4 種類のテーブル制約をサポートしています。

  • 主キー制約: テーブルの各データ行を一意に識別する主キーを定義します。主キー制約は、1 つのフィールドまたは複数のフィールドのグループにすることができます。テーブルに設定できる主キー制約は 1 つだけで、制約を構成した後は変更できません。

  • 一意制約: フィールドまたはフィールド グループのデータがテーブル内で一意であることを保証します。 1 つのテーブルに複数の一意制約を設定できます。

  • 外部キー制約: 2 つのテーブルの 1 つ以上の列を関連付けます。外部キー制約は、関連付けられたテーブル間のデータの整合性と完全性を維持するために使用されます。外部キー制約の設定が完了すると、新しい制約の作成や既存の制約の変更はできません。

  • CHECK 制約: データを編集する際に、設定されたチェック ルールに基づいてデータベース内のデータをチェックします。チェックに合格した場合のみ、データの変更が許可されます。

OceanBase データベースは、MySQL モードと Oracle モードで異なる制約をサポートしており、異なる制約には異なる情報が必要です。したがって、選択した制約とページの要件に基づいて必要な情報を指定する必要があります。

制約設定ページには、次のアイコンが用意されています。

アイコン

説明

作成

このアイコンをクリックして、制約を作成します。

削除

このアイコンをクリックして、選択した制約を削除します。

ステップ 5: パーティション分割ルールを設定する

image

大量のデータを含むテーブルをパーティション分割できます。テーブルがパーティション分割されると、テーブル内のデータは複数の表領域に格納されます。データベースは、クエリのためにテーブル全体をスキャンしません。

  • MySQL モードでは、OceanBase データベースは、、、、、、 などのパーティション分割方法をサポートしています。キーハッシュ範囲範囲列リスト、および 列の一覧

  • Oracle モードでは、OceanBase データベースは、、、 の 3 つのパーティション分割方法をサポートしています。リスト範囲、および ハッシュ

ステップ 6: SQL 文を確認する

image.png

[実行]を実行すると、SQL 確認ページでステートメントを表示できます。ステートメントを確認およびフォーマットできます。

構文は次のとおりです。

CREATE TABLE table_name (column_name column_type, column_name column_type,.......);

次の表は、構文のフィールドについて説明しています。

フィールド

説明

CREATE TABLE

指定された名前のテーブルの作成を示すキーワード。テーブルを作成する権限が必要です。

table_name

テーブルの名前。テーブル名は、識別子の命名規則に準拠している必要があります。

column_name column_type

テーブル内の各列の名前とデータ型。複数の列のタプルはコンマ (,) で区切ります。

ステップ 7: テーブルの作成を完了する

[クリック] 実行。テーブルが作成されると、左側のナビゲーション ウィンドウのテーブル リストに従業員テーブルが表示されます。

image.png

説明

左側のナビゲーションウィンドウのテーブルリストにあるテーブル名の横にある [その他] アイコンをクリックし、コンテキストメニューから 、、、、、、、、、 を選択して、テーブルを管理または操作できます。[テーブルスキーマを表示]テーブルデータの表示インポートエクスポートダウンロードモックデータ[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`;

image.png

論理ライブラリにテーブルを作成する

ステップ 1: 基本情報を指定する

  1. ODC コンソールにログインし、目的の接続の名前をクリックして、対応する接続管理ページに移動します。左側のナビゲーションウィンドウの をクリックして、テーブルを表示できます。テーブルを作成するには、テーブルリストの右上隅にあるプラス記号 () をクリックするか、上部ナビゲーションバーの をクリックします。 左側のナビゲーション ウィンドウでテーブルを表示します。テーブルを作成するには、プラス記号 (+) をクリックするか、テーブルリストの右上隅にある 作成 トップ ナビゲーション バーにあります。

    image

  2. [基本情報 セクションで、設定します テーブル名 および 説明 パラメーター。

    image

    説明
    • MySQL モードでは、[デフォルトの文字セット] パラメーターと [デフォルトの照合順序] パラメーターも設定する必要があります。

    • 基本情報を指定して「列の設定」ステップに進むと、基本情報が送信されます。

ステップ 2: 列を設定する

説明

ODC V4.2.3 以降では、 または で空間データ型の列を含むテーブルを作成できます。 MySQL モードの OceanBase Database または MySQL データベース

次の図と表は、列を追加するときに指定する必要がある情報を示しています。

image

パラメーター

説明

名前

列の名前。

列のデータ型。

データ型の詳細については、「OceanBase Database デベロッパーガイド」をご参照ください。

長さ

データ型の長さ。

スケール

データ型の小数点以下の桁数。

NULL 以外

列の値が必須かどうかを指定します。

自動インクリメント

列が自動インクリメント列かどうかを指定します。このパラメーターは MySQL モードで有効です。

重要
  • 1 つのテーブルに許可される自動インクリメント列は 1 つだけです。

  • 一度に 1 つの列に対してのみ 自動インクリメント を選択できます。

仮想カラム

列を仮想カラムとして設定するかどうかを指定します。

重要
  • 選択した場合、仮想列、仮想カラムの式を指定する必要があります。

  • 仮想カラムを作成する場合は、仮想カラムが依存する式を定義する必要があります。仮想カラムは生成列であり、仮想生成列または保存生成列のいずれかになります。仮想カラムの値は、列が使用される場合にのみ式に基づいて計算されます。したがって、テーブルにデータを挿入するときに、仮想カラムの値を指定することはできません。

デフォルト値/式

列のデフォルト値または式。

コメント

列に関する追加情報。

次の表は、列設定ページで実行できる操作について説明しています。

操作

説明

ツールバー操作

ページ上部のツールバーを使用して、列を追加または削除できます。

行 ID をクリックする

  • 行 ID をクリックすると、行を選択し、行の追加または削除を実行できるコンテキストメニューを表示できます。

  • 行番号をクリックして行を選択し、行をドラッグして行全体の順序を調整できます。

行を右クリックする

行を右クリックして選択し、表示されるコンテキストメニューから [コピー] または [下へ移動] を選択できます。

説明
  • 行をコピーした後、Command + V または Ctrl + V ショートカットキーを使用して行を貼り付けることができます。

  • ページ下部の補助編集セクションには、選択した列に関する追加情報が表示されます。

  • 基本情報と列設定は必須です。その他の構成ステップの設定はオプションです。基本情報と列設定を指定した後、設定を送信し、SQL 文を確認してテーブルを作成できます。

ステップ 3:インデックスを設定する

テーブルに大量のデータが含まれている場合は、インデックスを使用してデータ クエリを高速化できます。インデックスは、テーブル内の 1 つ以上の列の値を事前にソートするデータ構造です。インデックスを使用することにより、条件を満たすレコードを直接見つけることができます。

次の図と表は、インデックスを設定するときに指定する必要がある情報を示しています。

image

パラメーター

説明

インデックス名

インデックスの名前。

範囲

デフォルト値は GLOBAL です。有効な値: GLOBAL および LOCAL

メソッド

デフォルト値は BTREE で、グローバルインデックスに適用されます。有効な値: EmptyBTREE、および HASH

  • BTREE インデックスは、データを B+ ツリー構造に格納し、指定されたインデックス範囲内の SQL 文の検索に適用されます。

  • HASH インデックスは、HASH テーブルに基づいて実装され、クエリ条件が HASH インデックス内のすべての列と完全に一致する場合にのみ使用されます。 HASH インデックスは、等号オペレーター (=)、IN オペレーター、または NULL セーフ等号オペレーター (<=>) を使用するクエリ条件にのみ使用できます。 HASH インデックスはソートには使用できず、性別列など、値の区別が少ない列には適していません。

インデックスタイプ

デフォルト値は NORMAL です。有効な値: NORMALUNIQUE、および FULLTEXT

  • NORMAL は、通常のインデックスを示します。

  • UNIQUE は、emp_no 列など、重複値を許可しないインデックスを示します。

  • FULLTEXT は、大量のデータを含むテーブルを検索するために使用されるフルテキストインデックスを示します。

インデックスを作成する列。インデックス付き列の順序に注意してください。

非表示

インデックスを非表示にするかどうかを指定します。

インデックス設定ページには、次のアイコンが表示されます。

アイコン

説明

作成

このアイコンをクリックすると、インデックスが作成されます。

削除

このアイコンをクリックすると、選択したインデックスが削除されます。

ステップ 4:制約を設定する

制約は、テーブルのデータ ルールを指定するために使用されます。制約に違反するデータ操作は終了します。

image

ODC は、次の 4 種類のテーブル制約をサポートしています。

  • 主キー制約: テーブルの各データ行を一意に識別する主キーを定義します。主キー制約は、1 つのフィールド、または複数のフィールドのグループにすることができます。テーブルに設定できる主キー制約は 1 つだけで、制約を構成した後は変更できません。

  • 一意制約: フィールドまたはフィールド グループのデータがテーブル内で一意であることを保証します。1 つのテーブルに複数の一意制約を設定できます。

  • 外部キー制約: 2 つのテーブルの 1 つ以上の列を関連付けます。外部キー制約は、関連付けられたテーブル間のデータの整合性と完全性を維持するために使用されます。外部キー制約の設定が完了すると、新しい制約を作成したり、既存の制約を変更したりすることはできません。

  • チェック制約: データを編集するときに、構成されたチェック ルールに基づいてデータベース内のデータをチェックします。チェックに合格した後にのみ、データの変更が許可されます。

OceanBase Database は、MySQL モードと Oracle モードで異なる制約をサポートしており、制約ごとに必要な情報が異なります。そのため、選択した制約とページの要件に基づいて必要な情報を指定する必要があります。

パラメータ

説明

制約名

制約の名前。

列情報

制約として指定されたフィールドまたはフィールドのグループ。

関連スキーマ

関連付けられたテーブルが配置されているスキーマ 外部キー制約が使用されます。関連付けられたテーブルは親テーブルです。このフィールドは Oracle モードでのみ有効です。

関連データベース

関連付けられたテーブルが配置されているデータベース (外部キー制約が使用されます。関連付けられたテーブルは親テーブルです。このフィールドは MySQL モードでのみ有効です。

関連テーブル

関連付けられているテーブル (外部キー制約が使用されます。関連付けられたテーブルは親テーブルです。

関連フィールド

関連付けられているフィールド (外部キー制約が使用されます。関連付けられたフィールドは親テーブルにあります。

削除

関連付けられたテーブルのデータが削除されたときに、現在のテーブルに対して実行される操作を指定します。現在のテーブルは子テーブルで、関連付けられたテーブルは親テーブルです。

次の 4 つのタイプの操作がサポートされています: CASCADENO ACTIONRESTRICT、および SET NULL

MySQL モードでサポートされている操作は、Oracle モードでサポートされている操作とは異なります。

  • MySQL モードでは、カスケードアクションなしRESTRICT、および NULL を設定

  • Oracle モードでは、カスケードアクションなし、および NULL を設定

    重要

    現在、OceanBase Database は NULL を設定。構文の詳細については、「CREATE TABLE または MySQL や Oracle の公式ドキュメント。

更新

関連付けられたテーブルのデータが更新されたときに、現在のテーブルに対して実行される操作を指定します。現在のテーブルは子テーブルで、関連付けられたテーブルは親テーブルです。

次の 4 つのタイプの操作がサポートされています: CASCADENO ACTIONRESTRICT、および SET NULL

MySQL モードでサポートされている操作は、Oracle モードでサポートされている操作とは異なります。

  • MySQL モードでは、カスケードアクションなし制限、および NULL を設定

  • Oracle モードでは、NO ACTIONを指定できます。

重要

現在、OceanBase Database は NULL を設定。構文の詳細については、「CREATE TABLE文、または MySQL や Oracle の公式ドキュメント。

チェック条件

データ検証時のチェックルールを指定します。チェック制約有効になっています。

制約設定ページには、次のアイコンがあります。

アイコン

説明

作成

このアイコンをクリックして、制約を作成します。

削除

このアイコンをクリックして、選択した制約を削除します。

ステップ 5:パーティション分割ルールを設定する

image

大量のデータを含むテーブルをパーティション分割できます。テーブルがパーティション分割されると、テーブル内のデータは複数の表領域に格納されます。データベースは、クエリに対してテーブル全体をスキャンしません。

  • MySQL モードでは、OceanBase Database は以下のパーティション化メソッドをサポートしています: KEYHASHRANGERANGE COLUMNSLIST、および LIST COLUMNS

  • Oracle モードでは、OceanBase Database は次の 3 つのパーティション化方式をサポートしています: リスト範囲、および ハッシュ

    MySQL モードでのパーティションの定義は、Oracle モードでの定義とは異なります。そのため、次のフィールドの値はモードによって異なります。選択したパーティション化方式に基づいて、次のフィールドを指定する必要があります。

    パラメータ

    説明

    パーティション化方式

    パーティション化方式を指定します。MySQL モードでサポートされているパーティション化方式は、Oracle モードでサポートされている方式とは異なります。

    • RANGE パーティション化: 順序付けられ、連続しており、重複しない範囲の列値を持つ複数の行が 1 つのパーティションに割り当てられます。

    • LIST パーティション化: テーブルは、列挙値に基づいてパーティション化されます。

    • HASH パーティション化: テーブルは、指定された数のパーティションに基づいてパーティション化されます。明確なパターンや範囲のないデータを格納するテーブルの場合、ハッシュパーティション化を使用して、HASH アルゴリズムに基づいてパーティション列の値を異なるパーティションにランダムに分散できます。

    • KEY パーティション化: このパーティション化方式は、HASH パーティション化に似ています。違いは、KEY パーティション化では 1 つ以上の列のみの計算がサポートされ、MySQL サーバーが独自のハッシュ関数を用意していることです。Key パーティション化には、少なくとも 1 つの INT 型の列が必要です。

    フィールド

    パーティションキーとして使用される列。

    パーティションは、式の戻り値に基づいて分割されます。パーティション式は Oracle モードではサポートされていません。

    パーティション

    指定された値に基づいて パーティション方法などの情報を指定する必要がある場合があります。パーティション名パーティション数上限、および 値の列挙。複数のパーティションを追加し、選択したフィールドをドラッグして順序を調整できます。 で指定された値に基づいて、 などの情報を指定する必要がある場合があります。複数のパーティションを追加し、選択したフィールドをドラッグして順序を調整できます。

ステップ 6:SQL 文を確認する

image

クリックした後、実行、SQL 確認ページでステートメントを表示できます。ステートメントを確認およびフォーマットできます。

構文は次のとおりです。

CREATE TABLE table_name (column_name column_type, column_name column_type,.......);

次の表は、構文内のフィールドについて説明しています。

フィールド

説明

CREATE TABLE

指定された名前でテーブルを作成することを示すキーワードです。テーブルを作成する権限が必要です。

table_name

テーブルの名前です。テーブル名は、識別子の命名規則に準拠している必要があります。

column_name column_type

テーブルの各列の名前とデータ型です。複数の列のタプルはコンマ (,) で区切ります。

ステップ 7:テーブルの作成を完了する

[実行] をクリックします。テーブルが作成されると、左側のナビゲーション ウィンドウのテーブル リストに employee テーブルが表示されます。

関連情報