データ定義クエリを使用してテーブルまたはインデックスを作成または変更する

注: 最新のヘルプ コンテンツをできるだけ早く、お客様がお使いの言語で提供したいと考えております。このページは、自動翻訳によって翻訳されているため、文章校正のエラーや不正確な情報が含まれている可能性があります。私たちの目的は、このコンテンツがお客様の役に立つようにすることです。お客様にとって役立つ情報であったかどうかを、このページの下部でお知らせください。簡単に参照できるように、こちらに英語の記事があります。

作成し、[SQL ビュー] で、データ定義クエリを作成して、テーブル、制約、インデックスおよび Access でのリレーションシップを変更できます。この記事では、データ定義クエリとを使用してテーブル、制約、インデックス、およびリレーションシップを作成する方法について説明します。この記事では、データ定義クエリを使用するべきかを判断できます。

この記事の内容

概要

作成またはテーブルを変更します。

インデックスを作成する

制約またはリレーションシップを作成します。

概要

その他の Access のクエリとは異なり、データ定義クエリは、データを取得できません。代わりに、データ定義クエリを使ってデータ定義言語を作成、変更、またはデータベース オブジェクトを削除します。

注: データ定義言語 (DDL) は、一部の構造化照会言語 (SQL) です。

データ定義クエリは、とても便利です。定期的に削除し、一部のクエリを実行するだけで、データベース スキーマの一部を再作成することができます。データ定義クエリを使用して、SQL ステートメントに精通している場合は削除して再特定のテーブル、制約、インデックスまたはリレーションシップを作成することを検討してください。

警告: データ定義クエリを使用してデータベース オブジェクトを変更するのには、アクションは、確認のダイアログ ボックスで記述されていませんため、リスクの高いがあります。間違った場合は、データが失われるまたは意図せずにテーブルのデザインを変更できます。データ定義クエリを使用して、データベース内のオブジェクトを変更するときに注意してください。使用しているデータベースの管理を担当する場合は、データ定義クエリを実行する前に、データベースの管理者に問い合わせてください。

重要: データ定義クエリを実行する前に関連する含まれているテーブルのバックアップ コピーを作成します。

DDL キーワード

キーワード

入力する文字列

CREATE

インデックスまたは存在しないテーブルを作成します。

ALTER

既存のテーブルまたは列を変更します。

DROP

既存のテーブル、列、または制約を削除します。

ADD

列または制約をテーブルに追加します。

COLUMN

使用の追加、変更、または削除

CONSTRAINT

使用の追加、変更、または削除

INDEX

作成で使用します。

TABLE

使用には、作成、変更または削除

ページの先頭へ

作成またはテーブルを変更します。

テーブルを作成するには、テーブルの作成] のコマンドを使用します。テーブルの作成] のコマンドでは、次のような構文があります。

CREATE TABLE table_name 
(field1 type [(size)] [NOT NULL] [index1]
[, field2 type [(size)] [NOT NULL] [index2]
[, ...][, CONSTRAINT constraint1 [, ...]])

のみをテーブルの作成] コマンドの要素自体テーブルの作成] コマンドと、テーブルの名前ですが、一部のフィールドまたはテーブルの他の要素を定義する通常が必要です。このシンプルな例を検討してください。

名前、年、および販売を検討している使用車の価格を格納するテーブルを作成するとします。最大 30 文字を名と年の 4 文字入力できるようにするとするとします。データ定義クエリを使用して、テーブルを作成するのには、次の操作を行います。

注: 最初に、データ定義クエリを実行するために、データベースのコンテンツを有効にする必要があります可能性。

  • メッセージ バーで [コンテンツの有効化] をクリックします。

テーブルを作成する

  1. [作成] タブの [マクロとコード] グループで、[クエリ デザイン] をクリックします。

  2. [テーブルの表示] ダイアログ ボックスを閉じます。

  3. [デザイン] タブの [クエリの種類] で、[データの定義] をクリックします。

    デザイン グリッドを非表示にし、[SQL ビュー オブジェクト タブが表示されます。

  4. 次の SQL ステートメントを入力します。

    テーブルの車 (名前、TEXT(30) 年 TEXT(4)、通貨の金額) を作成します。

  5. [デザイン] タブの [結果] グループで、[実行] をクリックします。

テーブルを変更する

テーブルを変更するには、ALTER TABLE コマンドを使用します。ALTER TABLE コマンドを使用して、追加、変更、または列 (削除) または制約をドロップすることができます。ALTER TABLE コマンドは、次のような構文があります。

ALTER TABLE table_name predicate

場所述語には、次のいずれかができます。

ADD COLUMN field type[(size)] [NOT NULL] [CONSTRAINT constraint]

ADD CONSTRAINT multifield_constraint

ALTER COLUMN field type[(size)]

DROP COLUMN field

DROP CONSTRAINT constraint

それぞれの車の状態に関する情報を格納する 10 桁のテキスト フィールドを追加するとします。次の操作を行うことができます。

  1. [作成] タブの [マクロとコード] グループで、[クエリ デザイン] をクリックします。

  2. [テーブルの表示] ダイアログ ボックスを閉じます。

  3. [デザイン] タブの [クエリの種類] で、[データの定義] をクリックします。

    デザイン グリッドを非表示にし、[SQL ビュー オブジェクト タブが表示されます。

  4. 次の SQL ステートメントを入力します。

    ALTER テーブル車追加列条件 TEXT(10)

  5. [デザイン] タブの [結果] グループで、[実行] をクリックします。

ページの先頭へ

インデックスを作成する

既存のテーブルにインデックスを作成するには、インデックスの作成] のコマンドを使用します。インデックスの作成] のコマンドでは、次のような構文があります。

CREATE [UNIQUE] INDEX index_name
ON table (field1 [DESC][, field2 [DESC], ...])
[WITH {PRIMARY | DISALLOW NULL | IGNORE NULL}]

のみに必要な要素は、インデックスに含まれるインデックスの作成コマンド インデックスの引数、index、するフィールドが含まれているテーブルの名前とフィールドの一覧の名前です。

  • インデックスを作成する頻繁にクエリを実行する場合に役に立ちます降順で探すトップ値フィールドにインデックスが設定された、または [降順引数原因は降順にインデックスが設定されたフィールドを並べ替えます。既定では、昇順でインデックスを作成します。

  • 引数は、主には、テーブルの主キーとして複数のインデックスが設定されたフィールドを確立します。

  • 禁止 NULL 引数とインデックスが設定されたフィールドの値を入力することを要求するインデックス、つまり、null 値は使用できません。

名前、年、価格、および販売を検討している使用車の条件を格納するフィールドを持つ車をという名前のテーブルがあると仮定します。表が大きくなり、クエリでの年フィールドを頻繁に追加して、します。役立つ、次の手順を使用してより迅速に結果を返すクエリ"年"フィールドにインデックスを作成することができます。

  1. [作成] タブの [マクロとコード] グループで、[クエリ デザイン] をクリックします。

  2. [テーブルの表示] ダイアログ ボックスを閉じます。

  3. [デザイン] タブの [クエリの種類] で、[データの定義] をクリックします。

    デザイン グリッドを非表示にし、[SQL ビュー オブジェクト タブが表示されます。

  4. 次の SQL ステートメントを入力します。

    インデックス YearIndex の車 (年) を作成します。

  5. [デザイン] タブの [結果] グループで、[実行] をクリックします。

ページの先頭へ

制約またはリレーションシップを作成します。

制約は、論理値が挿入されるフィールドまたはフィールドの組み合わせが満たす必要がある条件を確立します。たとえば、一意の制約では、既存のフィールドの値と重複する値を許可制約フィールドができなくなります。

リレーションシップは、フィールドの値を参照する制約の種類や、制限されたフィールドのフィールドの組み合わせの値を挿入することができるかどうかを判断する別のテーブルのフィールドの組み合わせです。制約がリレーションシップであることを示す特殊なキーワードが使わないでください。

制約を作成するには、テーブルの作成または ALTER TABLE コマンドで CONSTRAINT 句を使用します。CONSTRAINT 句の 2 種類があります: 複数のフィールドの制約を作成して、1 つのフィールドの制約を作成する 1 つです。

単一フィールド制約

単一フィールド CONSTRAINT 句の直後に、制約と構文は次のフィールドの定義。

CONSTRAINT constraint_name {PRIMARY KEY | UNIQUE | NOT NULL |
REFERENCES foreign_table [(foreign_field)]
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

名前、年、価格、および販売を検討している使用車の条件を格納するフィールドを持つ車をという名前のテーブルがあると仮定します。自動車の条件の値を入力する忘れたを頻繁に常に場合は、この情報を記録します。制約条件のフィールドから、次の手順を使用してフィールドを空白になり、移動できませんを作成できます。

  1. [作成] タブの [マクロとコード] グループで、[クエリ デザイン] をクリックします。

  2. [テーブルの表示] ダイアログ ボックスを閉じます。

  3. [デザイン] タブの [クエリの種類] で、[データの定義] をクリックします。

    デザイン グリッドを非表示にし、[SQL ビュー オブジェクト タブが表示されます。

  4. 次の SQL ステートメントを入力します。

    ALTER テーブル車 ALTER 列条件テキスト制約 ConditionRequired NULL でないです。

  5. [デザイン] タブの [結果] グループで、[実行] をクリックします。

これで、しばらくして、表示と同じにする必要がある条件フィールド内の複数のと同じ値があることがあるとします。たとえば、車の一部が低下の条件の値がありの不適切な値を持つ他のユーザー。

注: 残りの手順を実行する場合は、上記の手順で作成した車テーブルに偽の一部のデータを追加します。

一貫性のあるはその値をクリーンアップすると後、という名前の条件の車の条件を使用するすべての値を含む 1 つのフィールドで、CarCondition をという名前のテーブルを作成できます。

  1. [作成] タブの [マクロとコード] グループで、[クエリ デザイン] をクリックします。

  2. [テーブルの表示] ダイアログ ボックスを閉じます。

  3. [デザイン] タブの [クエリの種類] で、[データの定義] をクリックします。

    デザイン グリッドを非表示にし、[SQL ビュー オブジェクト タブが表示されます。

  4. 次の SQL ステートメントを入力します。

    テーブル CarCondition (TEXT(10)) の条件を作成します。

  5. [デザイン] タブの [結果] グループで、[実行] をクリックします。

  6. ALTER TABLE ステートメントを使用してテーブルの主キーを作成します。

    テーブル CarCondition ALTER 列条件テキスト制約 CarConditionPK 主キーを変更します。

  7. 新しい CarCondition テーブルに条件車テーブルのフィールドから値を挿入するには、[SQL ビュー オブジェクト タブに次の SQL を入力します。

    CarCondition 選択 DISTINCT に挿入車; から条件

    注: この手順で SQL ステートメントを追加クエリにはデータ定義クエリとは異なり、追加クエリはセミコロンで終了します。

  8. [デザイン] タブの [結果] グループで、[実行] をクリックします。

制約を使用してリレーションシップを作成します。

[車の表は、[条件] フィールドに挿入された任意の値が CarCondition テーブル内の条件のフィールドの値と一致している必要があることができますし、リレーションシップを作成する CarCondition と車のという名前を使って、次の条件] フィールドに手順:

  1. [作成] タブの [マクロとコード] グループで、[クエリ デザイン] をクリックします。

  2. [テーブルの表示] ダイアログ ボックスを閉じます。

  3. [デザイン] タブの [クエリの種類] で、[データの定義] をクリックします。

    デザイン グリッドを非表示にし、[SQL ビュー オブジェクト タブが表示されます。

  4. 次の SQL ステートメントを入力します。

    ALTER テーブル車 ALTER 列条件テキスト制約 FKeyCondition 参照 CarCondition (条件)

  5. [デザイン] タブの [結果] グループで、[実行] をクリックします。

複数のフィールドの制約

複数フィールド CONSTRAINT 句、フィールド定義句以外にのみ使用できますであり、次の構文を使います。

CONSTRAINT constraint_name 
{PRIMARY KEY (pk_field1[, pk_field2[, ...]]) |
UNIQUE (unique1[, unique2[, ...]]) |
NOT NULL (notnull1[, notnull2[, ...]]) |
FOREIGN KEY [NO INDEX] (ref_field1[, ref_field2[, ...]])
REFERENCES foreign_table
[(fk_field1[, fk_field2[, ...]])] |
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

車のテーブルを使用する別の例を検討してください。たとえば、車表内の 2 つのレコードの名前、年、条件、および価格の同じ一連の値であるかどうかを確認することです。次の手順を使用して、これらのフィールドに適用される固有の制約を作成できます。

  1. [作成] タブの [マクロとコード] グループで、[クエリ デザイン] をクリックします。

  2. [テーブルの表示] ダイアログ ボックスを閉じます。

  3. [デザイン] タブの [クエリの種類] で、[データの定義] をクリックします。

    デザイン グリッドを非表示にし、[SQL ビュー オブジェクト タブが表示されます。

  4. 次の SQL ステートメントを入力します。

    変更するテーブル車を追加する制約 NoDupes 一意 (名前、年、条件、価格)

  5. [デザイン] タブの [結果] グループで、[実行] をクリックします。

ページの先頭へ

Office のスキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×