Accessテクニックのホームへ戻る

■ テーブルを新規に作成する  (2000,2002,2003,2007)

 

データベースに新規の商品テーブルを作成するデータ定義クエリを作成します。商品テーブルを新規に作成するには、DDLCREATE 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 TABLEtableには、新規に作成するテーブル名を指定します。columnにはテーブルの列名(フィールド名)、typeにはデータ型、sizeにはフィールドサイズを指定します。CONSTRAINT句は、インデックスなどを作成するときに指定します。

 

typeのデータ型には、表3-9-1に示すようなSQLのデータ型を指定します。Access/Jetエンジンのテキスト型、日付/時刻型、整数型、長整数型は、SQLTEXTDATETIMESHORTLONGのデータ型に対応します。フィールドのサイズは、テキスト型のフィールドに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 TABLECONSTRAINT句と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/JetSQLのデータ型対応表

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を追加します。たとえば、商品テーブルの発注点のフィールドに発注点の範囲(10100)を設定するには、次のように記述します。

 

CREATE TABLE tbl商品

(商品ID LONG CONSTRAINT PrimaryKey PRIMARY KEY,

発注点 SHORT CONSTRAINT 発注点入力規則 CHECK (発注点 BETWEEN 10 AND 100));

 

CHECKオプションは、ANSI SQL-92で拡張された機能ですから、[ツール]メニューの[オプション]からANSI SQL-92を有効にする必要があります。

 

ダウンロード (078.lzh)