SQLでの制約の種類と設定方法

この記事では、SQL(Structured Query Language)で使用される制約の種類とその設定方法について詳しく解説します。制約は、データベース内のテーブルでデータの整合性を保つために用いられる重要な概念です。適切な制約を設定することで、誤ったデータの挿入や更新を防ぎ、信頼性の高いデータベースを構築できます。

目次

制約の種類

制約にはいくつかの種類があります。主に以下のような制約が存在します。

制約名説明
PRIMARY KEY一意の識別子として機能します
UNIQUE一意の値しか許可されません
NOT NULLNULL値が許可されません
FOREIGN KEY他のテーブルの列と関連付けます
CHECK値が特定の条件を満たす必要があります
DEFAULTデフォルト値を設定します
制約の種類とその説明

制約の設定方法

PRIMARY KEY制約

PRIMARY KEY制約は、テーブルに一意の識別子を設定する際に使用されます。この制約が付与された列には重複するデータを挿入することはできません。

CREATE TABLE 顧客 (
    顧客ID INT PRIMARY KEY,
    名前 VARCHAR(50),
    メールアドレス VARCHAR(50)
);

UNIQUE制約

UNIQUE制約は、テーブルの列に一意の値しか許可しないようにする制約です。PRIMARY KEYと異なり、NULL値は許可されます。

CREATE TABLE 顧客 (
    顧客ID INT PRIMARY KEY,
    名前 VARCHAR(50),
    メールアドレス VARCHAR(50) UNIQUE
);

NOT NULL制約

NOT NULL制約は、テーブルの列にNULL値を許可しないようにする制約です。

CREATE TABLE 顧客 (
    顧客ID INT NOT NULL,
    名前 VARCHAR(50) NOT NULL,
    メールアドレス VARCHAR(50)
);

FOREIGN KEY制約

FOREIGN KEY制約は、あるテーブルの列を別のテーブルのPRIMARY KEY列と関連付ける制約です。

CREATE TABLE 注文 (
    注文ID INT PRIMARY KEY,
    顧客ID INT,
    FOREIGN KEY (顧客ID) REFERENCES 顧客(顧客ID)
);

CHECK制約

CHECK制約は、列に挿入または更新される値が特定の条件を満たす必要がある場合に使用されます。

CREATE TABLE 顧客 (
    顧客ID INT PRIMARY KEY,
    年齢 INT CHECK (年齢 >= 18)
);

DEFAULT制約

DEFAULT制約は、列に明示的な値が設定されていない場合に使用されるデフォルト値を設定する制約です。

CREATE TABLE 顧客 (
    顧客ID INT PRIMARY KEY,
    国籍 VARCHAR(50) DEFAULT '日本'
);

まとめ

SQLで使用される制約には様々な種類があり、それぞれが持つ役割や設定方法には独自の特性があります。これらの制約を適切に使用することで、データの整合性を高め、より信頼性の高いデータベースシステムを構築できます。初心者からプロフェッショナルまで、これらの知識はデータベース設計において必須です。

コメント

コメントする

目次