この記事では、SQL(Structured Query Language)で使用される制約の種類とその設定方法について詳しく解説します。制約は、データベース内のテーブルでデータの整合性を保つために用いられる重要な概念です。適切な制約を設定することで、誤ったデータの挿入や更新を防ぎ、信頼性の高いデータベースを構築できます。
目次
制約の種類
制約にはいくつかの種類があります。主に以下のような制約が存在します。
制約名 | 説明 |
---|---|
PRIMARY KEY | 一意の識別子として機能します |
UNIQUE | 一意の値しか許可されません |
NOT NULL | NULL値が許可されません |
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で使用される制約には様々な種類があり、それぞれが持つ役割や設定方法には独自の特性があります。これらの制約を適切に使用することで、データの整合性を高め、より信頼性の高いデータベースシステムを構築できます。初心者からプロフェッショナルまで、これらの知識はデータベース設計において必須です。
created by Rinker
¥4,554
(2024/09/08 04:25:02時点 Amazon調べ-詳細)
コメント