主キーとユニークキーの主な違いは、その機能がテーブル内の各レコードを識別することであるとして、テーブル内の唯一の主キーが存在することができ、それは任意のNULL値を持つことはできません一方、その機能があるように、テーブル内の複数のユニークキーが存在することができます唯一の列が重複したデータが存在しないようにユニークな値を持つことを保証することであることです。
RDBMSとは、リレーショナル・データベース・マネージメント・システムのことです。
データベースを作成・管理するためのソフトウェアです。
データベースは、互いに関連するテーブルの集合体です。
テーブルは行と列で構成されている。
行は1つの実体を表し、列は属性を表す。
RDBMSでデータを管理するための言語がSQL(Structured Query Language)です。
SQLには、テーブルに格納されるデータの種類を制限するための様々な制約があります。
これらの制約は、テーブル内のデータの整合性を維持するのに役立ちます。
主キーと一意キーは、そのような制約の2つです。
主キーとは
主キーは、テーブル内の各レコードを識別するのに役立ちます。
主キーはNULL値を許しません。
キャプション – SQL
社員データベースでは、社員テーブルには、id、名前、住所、給料などのカラムを持つことができます。
各従業員は一意のIDを持っているので、最も適したカラムはidです。
これは、テーブル内のすべてのエンティティを識別するのに役立ちます。
主キーを作成する例は、以下のとおりです。
create table employee (
id int not null,
名前 varchar (50),
住所 varchar (50),
salary decimal (10,2),
主キー(id)
);
また、2つ以上のカラムを組み合わせて主キーを作ることも可能です。
以下のSQL文は、idとnameを組み合わせて主キーを作成しています。
この組み合わせの主キーをコンポジットキーとも呼びます。
create table employee (
id int not null,
名前 varchar (50),
住所 varchar (50)。
salary decimal (10,2),
主キー (id、name)
);
以下のSQLコマンドは、テーブルからプライマリーキーを削除します。
alter table employee drop primary key;
ユニークキーとは
ユニークキーは、カラムがユニークな値のみを持つことを保証します。
したがって、そのカラムには重複したデータは存在しない。
次のSQL文は、名前をユニークに設定する。
そのため、同じ名前のレコードが2つ存在することはありません。
create table employee (
id int not null,
名前 varchar (50) unique,
住所 varchar (50),
給与 10進数 (10,2)。
主キー(id)
);
同様に、Uniqueキーは、特定のカラムの値がすべて異なることを保証します。
主キーとユニークキーの違い
定義
主キーは、データベーステーブルの各行やレコードを一意に識別できるSQL制約であるのに対し、ユニークキーは、データベーステーブルの離れた2行に同じ値を割り当てることを許さないSQL制約です。
使用方法
主キーは、テーブルの各行やレコードを一意に識別するのに役立ち、ユニークキーは、カラムに同じ値を持つ2つのレコードを回避することができます。
NULL
主キーはNULL値を許さないが、ユニークキーはNULL値を1つだけ許す。
1テーブルあたりのキー数
1つのテーブルが持つ主キーは1つだけです。
しかし、1つのテーブルには複数のユニークキーを持つことができる。
結論
SQLの制約は、データベース内のデータの正確さと整合性を維持するのに役立ちます。
プライマリキーとユニークキーは、そのような2つの制約です。
主キーとユニークキーの基本的な違いは、1つのテーブルに複数のユニークキーが存在できるのに対し、主キーは1つしか存在できないことです。
主キーは自動的に一意制約を持ちます。