II-22-5. SQLによる表の作成

SQLを用いて表を作成する手順を示す。データ型の指定やNULLの取り扱い、主キーと外部キーの指定方法といった表の作成に関する基本的な項目を具体的に説明する。

【学習の要点】

* RDBにSQLで表(テーブル)を作成には「CREATE TABLE」文を使用する。

* 列のデータ型には大きく分けて文字列型、数値型、日時型が指定できる。

* 表の行の一意性制約のためにNULL値を持たない主キーとなる列を作成する必要がある。

図II-22-5. データ型とテーブルの作成

【解説】

1) 表の作成

データベースに格納されるデータは「テーブル」で管理される。SQLを用いてRDBに表(テーブル)を作成するには「CREATE TABLE」文を使用し、以下の構文で記述する。

 CREATE TABLE テーブル名 ( フィールド名 データ型 [ , フィールド名 データ型] … ) ;

記述例: CREATE TABLE `hinmoku` ( `shinacode` INT ,

`shinamei` CHAR( 30 ) ,

`tanka` INT ,

`tourokubi` DATE) ;

2) データ型

列のデータ型には大きく分けて文字列型(char、varchar、text)、数値型(int、float、double)、日時型(date、datetime、timestamp)等があり、適切な定義により、データの整合性を高く保つことができる。使用できるデータ型や記述内容はRDMBSによって一部異なる箇所がある。ここではMySQLを例とする。

3) NOT NULL

必須の項目を定義するには、NOT NULL制約のオプションを指定する。テーブルを変更する場合は「ALTER TABLE」を使用する。

記述例: ALTER TABLE `hinmoku` MODIFY COLUMN `shinamei` CHAR( 30 ) NOT NULL ;

4) 主キーと外部キー

* 主キー(プライマリキー)

主キーを作成するには、CREATE TABLEまたはALTER TABLEで「PRIMARY KEY」を指定する。

記述例: ALTER TABLE `hinmoku` ADD PRIMARY KEY (`shinacode`) ;

* 外部キー

外部キーを作成するには、CREATE TABLEまたはALTER TABLEで「FOREIGN KEY」を指定する。なお、MySQLでは外部キーの機能を使用するには、ストレージエンジンにInnoDBを指定する必要がある。外部キーを使用する場合は、あらかじめ既に作成した参照先テーブルのストレージエンジンもInnoDBに変更する。

記述例: CREATE TABLE `hacchuu` ( `denpyoubangou` INT ,

`shinacode` INT ,

`suuryou` INT ,

`shiiresakimei` CHAR( 30 ) NOT NULL,

PRIMARY KEY (`denpyoubangou`) ,

FOREIGN KEY (`shinacode`)

REFERENCES `hinmoku`(`shinacode`)

) ENGINE = InnoDB;

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。