本記事ではSQLステートメントを使用してデータベースを作成する方法について説明します。また、データベース作成の前提条件、データベースの概要、制限事項および推奨事項などを紹介するとともに、いくつかの例も示します。
データベースの概要
OceanBaseデータベースでは、「データベース(Database)」の下に複数のテーブルやインデックス、さらにデータベースオブジェクトのメタデータ情報が含まれています。本番環境ではできる限り test データベースなどのデフォルトのデータベースを使用しないようにしてください。
前提条件
データベースを作成する前に、以下の事項を確認する必要があります:
OceanBaseクラスタをデプロイし、MySQLモードのテナントを作成していること。OceanBaseクラスタのデプロイに関する情報については、デプロイの概要を参照してください。
OceanBaseデータベースのMySQLテナントに接続していること。データベースへの接続に関する詳細については、接続方法の概要を参照してください。
既に
CREATE権限を保有していること。現在のユーザー権限を確認する操作の詳細については、ユーザー権限の確認を参照してください。該当する権限を持っていない場合は、管理者に連絡し権限の付与を依頼してください。ユーザー権限に関する操作については、直接権限付与を参照してください。
データベースの作成の制限
OceanBaseデータベースの各データベース名はグローバルに唯一である必要があります。
データベース名の長さは128文字以下となります。
大文字、小文字、数字、アンダースコア(_)、およびドル記号($)のみ含みます。
予約語をデータベース名として使用することは避けてください。
OceanBaseデータベースMySQLモードの予約語の詳細については、予約語を参照してください。
データベース作成に関する推奨事項
データベースにその用途と内容を反映するような、意味のある名前を付けることを推奨します。例えば、
application_identifier_sub-application_name (optional)_dbをデータベース名とします。データベースと関連するユーザーの作成に
rootユーザーを使用することを推奨します。また、データベースのセキュリティと制御性を確保するため、必要な権限のみ付与してください。データベース作成時には、データが正しく保存・ソートされるように、適切なデフォルトの文字セットと照合順序を設定してください。ビジネスの長期的発展に対応するため、データベースを作成する際には、ほとんどすべての文字を格納できるよう文字セットのエンコードに
utf8mb4を使用することを推奨します。バッククォート(`)で囲むことで、数字のみのデータベース名を作成することができますが、この方法は推奨されません。数字のみの命名には明確な意味がなく、クエリの実行や使用時には常にバッククォート(`)で囲む必要があり、不必要な複雑さと混乱を招くおそれがあるためです。
データベースでサポートされている文字セットのエンコードに関する詳細については、データベースレベルの文字セットを参照してください。
コマンドラインを使用してデータベースを作成する
CREATE DATABASE ステートメントを使用してデータベースを作成してください。
CREATE DATABASE ステートメントの形式は以下のとおりです:
CREATE DATABASE [IF NOT EXISTS] database_name [database_option_list];
パラメータの説明:
database_name:データベース名。database_option_list:データベースの特性、動作、プロパティを設定するためのオプションのリスト(例:文字セット、照合順序など)。
説明
SHOW DATABASES; を使用すると、テナント内のデータベース情報を確認できます。
例
例1:データベースを作成し、文字セットを指定する
データベース test_db を作成し、文字セットは utf8mb4 を指定します。
obclient [(none)]> CREATE DATABASE test_db DEFAULT CHARACTER SET utf8mb4;
例2:読み取り専用のデータベースを作成する
読み取り専用属性を持つデータベース test_ro_db を作成します。
obclient [(none)]> CREATE DATABASE test_ro_db READ ONLY;
例3:読み書き可能なデータベースを作成する
読み書き可能属性を持つデータベース test_rw_db を作成します。
obclient [(none)]> CREATE DATABASE test_rw_db READ WRITE;
次の操作
データベースの作成後、次の一般的な操作を実行することができます:
- データベースに必要なテーブルを作成し、テーブルの構造とフィールドを定義します。テーブルの作成に関する詳細については、テーブルの作成を参照してください。
- 必要に応じて、既存のデータを新しく作成されたデータベースに移行することができます。データ移行の詳細については、データ移行の概要を参照してください。