CREATE TABLE / ALTER TABLE / DROP TABLE


テーブルの作成<CREATE TABLE>

テーブルの作成には CREATE TABLE 文を用います。
CREATE TABLE 文の構文は次の通りです。

CREATE TABLE テーブル名 (列名 データ型 , ......);

CREATE TABLE の後にテーブル名を、その後ろの部分にカッコで囲んでフィールド名称、つまり列名とデータ型を設定します。

/* 商品表の定義 */
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 商品表(商品コード)
);

CREATE TABLEで使うデータ型は以下の通りです。

データ型名 データ型 格納できる値 主な用途
INT 数値型 -2147483648 ~ 214783647 の整数 受付番号など整数
DOUBLE 数値型 実数 少数を扱う場合など
CHAR 文字列型 固定長文字列 0 ~ 255 バイト 分類コードなど桁数が決まった文字列
VARCHAR 文字列型 可変長文字列 0 ~ 255 バイト 氏名など
TEXT 文字列型 可変長文字列 0 ~ 65,535 バイト 長い文章
DATE 日付型 1000-01-01 ~ 9999-12-31 登録日などの年月日
DATETIME 日付型 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 秒単位まで必要な日時

テーブルの変更<ALTER TABLE>

既存のテーブルの定義を変更は ALTER TABLE 文で行います。

列の追加 ALTER TABLE テーブル名 ADD 列名 データ型 ;

列を削除
ALTER TABLE テーブル名 DROP 列名 [ RESTRICT | CASCADE ] ;

テーブル制約の追加 ALTER TABLE テーブル名 ADD テーブル制約の定義 ;

テーブル制約の削除 ALTER TABLE テーブル名 DROP CONSTRAINT テーブル制約の定義 [ RESTRICT* | CASCADE* ] ;

デフォルト値の追加 ALTER TABLE テーブル名 ALTER 列名 SET DEFAULT デフォルト値 ;

デフォルト値の削除 ALTER TABLE テーブル名 ALTER 列名 DROP DEFAULT ;

* RESTRICT  指定した要素だけを削除することを表します
* CASCADE  この要素を参照するオブジェクトもすべて削除します

テーブル制約 (CONSTRAINT) とは、テーブルの列に入力できる値を制限するテーブル定義の一部のことです。
また、デフォルト値は、テーブルへの INSERT INTO 文に列の値が指定されなかった場合に、そのテーブルの列に自動的に挿入される値のことです。

/* 納品日列の追加*/
ALTER TABLE 受注表 ADD 納品日 CHAR(8) ;

/* 制約の追加 */
ALTER TABLE 受注表 ADD PRIMARY KEY(受注番号) ;

/* デフォルト値の追加 */
ALTER TABLE 受注表 ALTER COLUMN 受注個数 SET DEFAULT 10 ;

テーブルの削除<DROP TABLE>

テーブルの削除は、実際には2段階のプロセスからなります。

まず DELETE 文を使って、テーブルのデータを空にし、次に DROP TABLE 文を使ってテーブルの定義を破棄します。
DROP TABLE は空のテーブルを削除するものであり、データを破棄するものではないということです。

DROP TABLE テーブル名 [ RESTRICT | CASCADE ] ;

RESTRICT 句が指定された場合は、指定した表がビューや整合制約により参照されたものである場合は削除は行われません。
CASCADE 句が指定された場合は、ビューや整合制約も削除されます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


6 + 4 =

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>