ホームページ  >  記事  >  ウェブフロントエンド  >  SQL のキー |主キー |外部キー|候補キー|複合キー|代替キー|スーパーキー|代理キー|一意のキー

SQL のキー |主キー |外部キー|候補キー|複合キー|代替キー|スーパーキー|代理キー|一意のキー

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-02 14:19:01298ブラウズ

Keys in SQL | Primary Key | Foreign Key| Candidate Key|Composite Key |Alternate Key|Super Key|Surrogate Key| Unique Key

SQL では、キーはテーブル内の行を一意に識別し、テーブル間の関係を強制し、データの整合性を維持するために使用されます。キーにはさまざまな種類があり、それぞれが特定の目的を果たします。以下は、さまざまなキーの内訳と簡単な例です:

  1. 主キー

主キーはテーブル内の各レコードを一意に識別します。 NULL 値を持つことはできず、テーブルごとに主キーは 1 つだけ存在できます。

例:

テーブルを作成する 生徒 (
StudentID INT PRIMARY KEY, -- 主キー
名前 VARCHAR(50),
年齢INT
);

ここでは、StudentID が主キーです。つまり、各 StudentID 値は一意であり、null ではない必要があります。


  1. 外部キー

外部キーは、2 つのテーブル間の関係を作成する列 (または列のセット) です。これは別のテーブルの主キーを指し、参照整合性を強制します。

例:

CREATE TABLE コース (
CourseID INT PRIMARY KEY, -- 主キー
コース名 VARCHAR(50)
);

CREATE TABLE 登録 (
登録 ID INT 主キー、
StudentID INT、
コースID INT、
FOREIGN KEY (CourseID) REFERENCES Courses(CourseID) -- 外部キー
);

ここで、Enrollments テーブルの CourseID は、Courses テーブルの CourseID を参照する外部キーです。


  1. 候補キー

候補キーは、テーブル内の行を一意に識別できる列 (または列のセット) です。テーブルには複数の候補キーを持つことができますが、主キーとして選択されるのはそのうちの 1 つだけです。

例:

CREATE TABLE 従業員 (
EmployeeID INT、 -- 候補キー
電子メール VARCHAR(100)、 -- 候補キー
名前 VARCHAR(50),
PRIMARY KEY (EmployeeID) -- 主キーとして選択されました
);

このテーブルでは、EmployeeID と Email の両方が行を一意に識別できるため、候補キーとなります。ただし、EmployeeID が主キーとして選択されます。


  1. 複合キー

複合キーは 2 つ以上の列で構成される主キーであり、これらの列を合わせてテーブル内の行を一意に識別します。

例:

CREATE TABLE 注文 (
オーダーID INT、
製品ID INT、
数量INT、
主キー (OrderID、ProductID) -- 複合キー
);

ここでは、OrderID と ProductID の両方が複合キーを形成します。 2 つの行に OrderID と ProductID の同じ組み合わせを含めることはできません。


  1. 代替キー

代替キーは、主キーとして選択されていない候補キーです。

例:

テーブル車両の作成 (
VehicleID INT、 -- 主キー
LicensePlate VARCHAR(50), -- 代替キー
所有者名 VARCHAR(50),
主キー (車両ID)
);

ここで、LicensePlate は候補キーですが主キーではないため、代替キーです。


  1. 一意のキー

一意のキーにより、列または列のセット内のすべての値が互いに異なることが保証されます。主キーとは異なり、一意キーには NULL 値を含めることができます。

例:

CREATE TABLE ユーザー (
ユーザーID INT 主キー、
電子メール VARCHAR(100) UNIQUE, -- Unique Key
ユーザー名 VARCHAR(50)
);

ここで、Email は一意のキーであり、2 人のユーザーが同じ電子メール アドレスを持たないようにしますが、(必要に応じて) NULL 値を許可できます。


  1. スーパーキー

スーパー キーは、テーブル内の行を一意に識別できる 1 つ以上の列のセットです。候補キーは最小限のスーパーキーです (つまり、一意性プロパティを失わずに候補キーから列を削除することはできません)。

例:

従業員テーブル内:

(EmployeeID, Email) -- スーパーキー (EmployeeID と Email を組み合わせることで行を一意に識別できるため)

EmployeeID または Email の単独、または両方の組み合わせなど、行を一意に識別できる組み合わせはすべてスーパー キーと見なされます。


  1. 代理キー

代理キーは、テーブルの一意の識別子として使用される人工キーです。多くの場合、これは自動増加する整数のようなシステム生成値であり、現実世界では意味を持ちません。

例:

CREATE TABLE 注文 (
OrderID INT AUTO_INCREMENT, -- サロゲート キー
ProductName VARCHAR(50),
数量INT、
主キー (注文ID)
);

ここで、OrderID は代理キーであり、通常はデータベース システムによって生成され、直接的なビジネス上の意味はありません。


キーの概要:

これらのキーはそれぞれ、データの整合性と効率的なクエリを保証する、適切に構造化されたデータベースの設計において重要な役割を果たします。

以上がSQL のキー |主キー |外部キー|候補キー|複合キー|代替キー|スーパーキー|代理キー|一意のキーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。