■ テーブルを新規に作成する (2000,2002,2003,2007)
データベースに新規の商品テーブルを作成するデータ定義クエリを作成します。商品テーブルを新規に作成するには、DDLのCREATE TABLEステートメントを使用します。
1. 新規データベース作成
Accessを起動したら、ツールバーから新規作成のアイコン
をクリックして、作業フォルダworkに新規データベースW078.mdbを作成します。
2. データ定義クエリ作成
データベースウィンドウのオブジェクトから[クエリ]をクリックして選択したら、新規オブジェクトのショートカットから[デザインビューでクエリを作成する]をダブルクリックします。「テーブルの表示」ダイアログが表示されたら、何も選択しないで[閉じる]ボタンをクリックしてダイアログを閉じます。
クエリのデザインビューが表示されたら、メニューバーから[クエリ]→[SQL]→[データ定義]を選択します。「データ定義クエリ」が表示されたら、次のDDLステートメントを入力します。
CREATE TABLE tbl商品
(商品ID AUTOINCREMENT CONSTRAINT PrimaryKey PRIMARY KEY,
商品名 TEXT(50),
区分ID SHORT,
単価 CURRENCY,
発注点 LONG,
生産中止 YESNO);
ツールバーから上書き保存のアイコン
をクリックしたら「qry商品テーブル作成」の名称で保存します。

図 新規クエリを作成したら「qry商品テーブル作成」の名称で保存
3. データ定義クエリ実行
ツールバーから実行のアイコン
をクリックして、データ定義クエリを実行します。新規の商品テーブルが作成されます。この商品テーブルは、商品ID、商品名、区分ID、単価、発注点、生産中止のフィールドから構成されています。また、商品IDには、主キーが設定されます。

図 データ定義クエリで商品テーブル作成
●解説
データ定義(DDL)で新規テーブルを作成するには、CREATE TABLEステートメントを使用します。
書式
CREATE TABLE table
(column1 type1 [(size1)] [CONSTRAINT column-constraint1]
[,column2 type2 [(size2)] [CONSTRAINT column-constraint2]
[,...]]
[CONSTRAINT table-constraint1 [,table-constraint2 [,...]]]);
CREATE TABLEのtableには、新規に作成するテーブル名を指定します。columnにはテーブルの列名(フィールド名)、typeにはデータ型、sizeにはフィールドサイズを指定します。CONSTRAINT句は、インデックスなどを作成するときに指定します。
typeのデータ型には、表3-9-1に示すようなSQLのデータ型を指定します。Access/Jetエンジンのテキスト型、日付/時刻型、整数型、長整数型は、SQLのTEXT、DATETIME、SHORT、LONGのデータ型に対応します。フィールドのサイズは、テキスト型のフィールドにTEXT(50)のようにカッコ()で囲って指定します。テキスト型のサイズを省略すると255が既定値になります。(Access/Jetエンジンでは、50が既定値です。)
CONSTRAIN句には、次のような書式で指定します。
書式1
CONSTRAINT name {PRIMARY KEY|UNIQUE|REFERENCES foreign-table [(foreign-column)]}
書式2
CONSTRAINT name {PRIMARY KEY (column1 [,column2 [,...]])
|UNIQUE
|FOREIGN KEY (column1 [,column2 [,...]]) REFERENCES
foreign-table [(foreign-column1 [,foreign-column2 [,...]])]}
書式1は、単一フィールドから構成されるインデックスを作成するときに使用します。書式2は、複数フィールドから構成されるインデックスを作成するときに使用します。CONSTRAINT句のnameには、インデックス名を指定します。PRIMARY KEYは、主キーを作成するときに指定します。UNIQUEは、列の値が重複しないインデックスを作成するときに指定します。FOREIGN KEY・・・REFERENCESは、外部キーを設定するときに指定します。
商品テーブルに商品IDをオートナンバー型の主キー付きで定義するには、次のように記述します。
商品ID AUTOINCREMENT CONSTRAINT PrimaryKey PRIMARY KEY
商品IDに主キーを設定するには、CREATE TABLEのCONSTRAINT句とCREATE INDEXを使用する方法があります。
テーブルを作成するデータ定義クエリ:
CREATE
TABLE tbl商品
(商品ID AUTOINCREMENT CONSTRAINT
PrimaryKey PRIMARY KEY,
商品名 TEXT(50), 区分ID SHORT, 単価 CURRENCY,
発注点 LONG, 生産中止 YESNO);
CREATE
TABLE tbl受注
(受注ID LONG CONSTRAINT
PrimaryKey PRIMARY KEY,
得意先ID LONG, 受注日 DATETIME);
CREATE
TABLE tbl受注明細
(受注ID LONG CONSTRAINT
tbl受注FK REFERENCES tbl受注,
商品ID LONG, 単価 CURRENCY, 数量 SHORT, 値引 DOUBLE,
CONSTRAINT PrimaryKey PRIMARY KEY (受注ID、商品ID));
表Access/JetとSQLのデータ型対応表
|
Accessのデータ型 |
SQLのデータ型 |
|
|
テキスト型/Text |
TEXT, ALPHANUMERIC, CHAR, CHARACTER, STRING, VARCHAR |
|
|
メモ型/Memo |
LONGTEXT, LONGCHAR, MEMO, NOTE |
|
|
数値型/Number |
バイト型/Byte |
BYTE, INTEGER1 |
|
整数型/Integer |
SHORT, INTGER2, SMALLINT |
|
|
長整数型/Long Integer |
LONG, INT, INTEGER, INTEGER4 |
|
|
単精度浮動小数点型/Single |
SINGLE, FLOAT4, IEEESINGLE, REAL |
|
|
倍精度浮動小数点型/Double |
DOUBLE, FLOAT, FLOAT8, IEEEDOUBLE, NUMBER, NUMERIC |
|
|
レプリケーションID型/Replication ID |
GUID |
|
|
十進数型/Decimal |
|
|
|
日付/時刻型/DateTime |
DATETIME, DATE, TIME |
|
|
通貨型/Currency |
CURRENCY, MONEY |
|
|
オートナンバー型/Autonumber |
COUNTER, AUTOINCREMENT |
|
|
Yes/No型/YesNo |
BIT, BOOLEAN, LOGICAL, LOGICAL1, YESNO |
|
|
OLEオブジェクト型/OLE Object |
LONGBINARY, GENERAL, OLEOBJECT |
|
|
ハイパーリンク型/Hyperlink |
|
|
Tip
|
テーブルのフィールドに既定値を設定する
テーブルのフィールドに既定値を設定するには、DEFAULT (value)を追加します。たとえば、商品テーブルの在庫数のフィールドに既定値0を設定するには、次のように記述します。 CREATE TABLE tbl商品 (商品ID LONG CONSTRAINT PrimaryKey PRIMARY KEY, 在庫数 SHORT DEFAULT 0); DEFAULTオプションは、ANSI SQL-92で拡張された機能ですから、[ツール]メニューの[オプション]からANSI SQL-92を有効にする必要があります。 |
Tip
|
テーブルのフィールドに入力規則を設定する
テーブルのフィールドに入力規則を設定するには、CONSTRAINT句にCHECKを追加します。たとえば、商品テーブルの発注点のフィールドに発注点の範囲(10~100)を設定するには、次のように記述します。 CREATE TABLE tbl商品 (商品ID LONG CONSTRAINT PrimaryKey PRIMARY KEY, 発注点 SHORT CONSTRAINT 発注点入力規則 CHECK (発注点 BETWEEN 10 AND 100)); CHECKオプションは、ANSI SQL-92で拡張された機能ですから、[ツール]メニューの[オプション]からANSI SQL-92を有効にする必要があります。 |