新しいテーブルを作成します。
注
Microsoft Access データベース エンジンでは、Microsoft Access データベース エンジン以外のデータベースで CREATE TABLE やその他の DDL ステートメントを使用することはできません。 代わりに DAO の Create メソッドを使用してください。
構文
CREATE [TEMPORARY] TABLE テーブル (field1 type [(size)] [NOT NULL] [WITH COMPRESSION |WITH COMP] [index1] [, field2type [(size)] [NOT NULL] [index2] [, ...]][, CONSTRAINT multifieldindex [, ...]])
CREATE TABLE ステートメントでは、次の引数を使用します。
| 引数 | 説明 |
|---|---|
| table | 作成されるテーブルの名前です。 |
| field1、field2 | 新しいテーブルを作成するフィールドの名前です。 1 つ以上のフィールドを作成する必要があります。 |
| type | 新しいテーブルのフィールドのデータ型。 |
| size | 文字数単位のフィールド サイズです (テキスト型とバイナリ型のフィールドのみ)。 |
| index1、index2 | 単一フィールド インデックスを定義する CONSTRAINT 句です。 |
| multifieldindex | 複数フィールド インデックスを定義する CONSTRAINT 句です。 |
解説
CREATE TABLE ステートメントを使用して、新しいテーブル、フィールド、およびフィールドの制約を定義します。 フィールドに対して NOT NULL を指定した場合、そのフィールドに有効なデータを指定するには新しいレコードが必要です。
CONSTRAINT 句は、フィールドに対してさまざまな制限を設定し、主キーを確立するために使用できます。 CREATE INDEX ステートメントを使用して既存のテーブルに主キーまたは追加のインデックスを作成することができます。
NOT NULL を 1 つのフィールドまたは名前付きの CONSTRAINT 句内で使用し、CONSTRAINT という名前の 1 つのフィールドまたは複数のフィールドに適用することができます。 ただし、フィールドに NOT NULL 制限を 1 回だけ適用することができます。 この制限を複数回実行しようすると、実行時エラーになります。
TEMPORARY テーブルが作成されると、作成されたセッション内でのみ表示されます。 セッションの終了時に自動的に削除されます。 一時テーブルは、複数のユーザーによってアクセスできます。
WITH COMPRESSION 属性は、CHARACTER および MEMO (TEXT とも呼ばれます) データ型およびそれらの類義語でのみ使用できます。
Unicode 文字表現形式の変更のために、WITH COMPRESSION 属性が、CHARACTER 列に追加されました。 Unicode 文字では、各文字を格納するのにそれぞれ 2 バイトが必要です。 これは、主に文字データを含む既存の Microsoft Access データベースを Microsoft Access の形式に変換すると、データベース ファイル サイズが約 2 倍になることを意味します。 ただし、多くの文字セットの Unicode 表現は、以前は Single-Byte 文字セット (SBCS) として表されたものは、1 バイトに簡単に圧縮できます。 この属性を使用して CHARACTER 型の列を定義すると、列への格納時のデータ圧縮と列からの取得時のデータ圧縮解除が自動的に実行されます。
MEMO 型の列を定義すると、圧縮形式でデータを格納することもできます。 ただし、これには制限があります。 MEMO 型の列のインスタンスが、圧縮されるときには、4096 バイト以内のみが圧縮されます。 MEMO 型の列の他のすべてのインスタンスは圧縮されません。 これは、特定のテーブル内の MEMO 型の列で、データの一部が圧縮され、一部のデータが圧縮されていないことを意味します。