SQL 2章 SQL
2.5.2. テーブルの作成
リレーショナルデータベースには、データの“入れ物”が必要です。この入れ物のことをテーブルと呼びます(1.5 リレーショナル型データベース 参照)。ここでは、テーブルの作成方法について簡単に説明します。詳細な説明は後述します。
表を作成するときには、CREATE TABLE 文を使用します。CREATE TABLE の後に続ける名称が表の名称となります。また、その後ろの部分でカッコで囲んでフィールド名称、つまり列名とデータ型やその桁数などを設定します。
仮に下のような商品表、得意先表、受注表の 3つの表を作成するとします。
上の 3つの表は、次の SQL により定義します。
/* 商品表の定義 */ CREATE TABLE 商品表 ( 商品コード CHAR(4), 商品名 CHAR(16), 単価 INTEGER, PRIMARY KEY(商品コード) );
/* 得意先表の定義 */ CREATE TABLE 得意先表 ( 得意先コード CHAR(5), 得意先名 CHAR(16), PRIMARY KEY(得意先コード) );
/* 受注表の定義 */ CREATE TABLE 受注表 ( 受注番号 INTEGER, 得意先コード CHAR(5), 商品コード CHAR(4), 受注個数 INTEGER, 納品日 CHAR(8), PRIMARY KEY(受注番号), FOREIGN KEY(得意先コード) REFERENCES 得意先表(得意先コード), FOREIGN KEY(商品コード) REFERENCES 商品表(商品コード) );
PRIMARY KEY 文で主キーが何であるのかを定義しています。商品表では商品コード、得意先表では得意先コード、受注表では受注番号を示しています。また、受注表では外部キーを持っているため、これを FOREIGN KEY 文によって定義しています。
"FOREIGN KEY(得意先コード) REFERENCES 得意先表 (得意先コード)"の部分では、「受注表の得意先コードを外部キーとして定義し、得意先表の得意先コードという列を参照するものとする」ということを宣言しているわけです。
これらの文を実行することによって、それぞれの表はデータベース上に実際に確保されることになるのです。
関連記事
- [SQL] 3. テーブルの操作 1 : データベースのテーブルを作成するSQLについて説明します