新しいテーブルを作成します。
注: Microsoft Access データベース エンジンでは、Microsoft Access データベース エンジン以外のデータベースで CREATE TABLE やその他の DDL ステートメントを使用することはできません。 代わりに DAO の Create メソッドを使用してください。
構文
CREATE [TEMPORARY] TABLE 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 倍になることを意味します。 ただし、SBCS (Single-Byte Character Sets) 形式で表記されていた多くの文字セットは、Unicode 形式から 1 バイト形式に簡単に圧縮できます。 この属性を使用して CHARACTER 型の列を定義すると、列への格納時のデータ圧縮と列からの取得時のデータ圧縮解除が自動的に実行されます。
MEMO 型の列を定義すると、圧縮形式でデータを格納することもできます。 ただし、これには制限があります。 MEMO 型の列のインスタンスが、圧縮されるときには、4096 バイト以内のみが圧縮されます。 MEMO 型の列の他のすべてのインスタンスは圧縮されません。 これは、特定のテーブル内の MEMO 型の列で、データの一部が圧縮され、一部のデータが圧縮されていないことを意味します。