SQL入門その6 - テーブルの作成CREATE TABLE文の基本的な使い方

2007/11/06 14:42Update
TAGS: SQL | CREATE TABLE

リレーショナルデータベースには、データを格納するためにコンテナが必要です。このコンテナのことをテーブルと呼びます。CREATE TABLEは、新しいテーブルを作成するには使われます。



テーブルを作成するときには、CREATE TABLE文を使用します。CREATE TABLE文の基本構文は、以下のようになります。
CREATE TABLE <テーブル名> (
    列名1 データ型 [PRIMARY KEY],
    列名2, データ型 [制約情報、及びdefault値設定情報など],
    ...
    [PRIMARY KEY(主キーとなる列名),]
    [FOREIGN KEY(外部となる列名) REFERENCES テーブル名(列名),...]);―――――――――――――(1)

※※ <>は必須、[]はオプション構文との意味です。

◎「テーブル名」には、テーブルの名前を指定します。
◎データ型は、文字列型、数値型、日付・時間型というカテゴリに大別されます。データベースによって、多少違いはあるものの、つぎのようなデータ型があります。
文字列型はCHAR、NCHAR、VARCHAR、TINYBLOB/TINYTEXT、BLOB/TEXT、MEDIUMBLOB/MEDIUMTEXT、LONGBLOB/LONGTEXTなどがあります。
数値型はBIT、TINYINT、BOOL、BOOLEAN、SMALLINT、MEDIUMINT、INTEGER/INT、BIGINT、FLOAT、DOUBLE/REAL、DECIMAL/NUMERICなどがあります。
日付・時間型はDATE、DATETIME、TIMESTAMP、TIME、YEARなどがあります。
◎PRIMARY KEY 文で主キーが何であるのかを定義します。主キーとは、データを一意に識別するための情報である。主キーに設定された列は、複数のレコード間で重複することは許されず、主キーを持たないレコードが存在してはなりません。主キーは必ずしも一つの列とは限らず、複数の列を組み合わせて主キーとして用いる場合もある。
◎FOREIGN KEY 文によって外部キーを定義します。外部キーとは2つの関係テーブルの間の参照整合性制約とのことです。は複数を持つことが可能です。
◎各列の定義の後ろに「NOT NULL」キーワードで、その列の値はNULLを許容するか否かを指定します、また、「DEFAULT」キーワードで、その列のデフォルト値を定義します。

ではテーブル作成例をみてみましょう。
例1:
CREATE TABLE ORG_MST(
    ID INT PRIMARY KEY, 
    NAME VARCHAR(50)
);

CREATE TABLE USER_MST(
    ID INT PRIMARY KEY, 
    NAME VARCHAR(30),
    AGE INT DEFAULT 20,
    ORG_ID INT FOREIGN KEY REFERENCES ORG_MST(ID));

主キーはID、外部キーはORG_ID(USER_MST.ORG_IDはORG_MST.IDを参照)に指定します。

例2:
CREATE TABLE USER_MST(
    ID INT, 
    NAME VARCHAR(30) NOT NULL,
    AGE INT DEFAULT 20,
    ORG_ID INT,
    PRIMARY KEY(ID),
    FOREIGN KEY(ORG_ID) REFERENCES ORG_MST(ID),
    CHECK (AGE BETWEEN 0 AND 150));

満足しなければならない条件をCHECKキーワードで指定します。

例3:
CREATE TABLE USER_MST(
    ID INT, 
    NAME VARCHAR(30) NOT NULL,
    AGE INT DEFAULT 20,
    ORG_ID INT,
    CONSTRAINT USER_MST_pk PRIMARY KEY(ID),
    CONSTRAINT USER_MST_fk_org_id FOREIGN KEY(ORG_ID) REFERENCES ORG_MST(ID) ON DELETE CASCADE);

USER_MST_pkなどは制約の名前で、キーワードCONSTRAINTで整合性制約を識別します。
その他、また、UNIQUE キーワードでテーブルの一意キーを指定します。UNIQUE制約は、列または列の組合せを一意キーとして指定します。UNIQUE制約を満足するためには、表の中で2つの行が一意キーに対して同一の値を持つことはできません。

有关作者
Syboos.jp編集長システム設計や開発、保守運営などを行ってます。オープンソース技術に興味があります。

Sponsored Link


Comments