MySQL の主キー制約と一意制約

MySQLの制約

1.機能

制約は、データの整合性を確保するために従う必要があるルールとして定義されます。
制約はテーブルの作成中に作成することも、後で追加することもできます。
テーブルの作成後に制約を追加すると、既存のデータがチェックされて制約に違反しているかどうかが判断されます。
追加する制約が既存のデータに違反している場合、その制約は指定された列には適用されません。

2. 制約の種類

MySQL は、テーブル内の列に定義できる次の制約をサポートしています。

1) 主キー制約
2) 固有の制約
3) 外部キー制約
3. 主キー制約

値が含まれる列または列のセットの定義のみテーブル内のすべての行を識別します。
これらの列は主キー列と呼ばれます。
主キー列に NULL 値を含めることはできませんテーブル内の行を一意に識別するために使用されるためです。

文法:

CREATE TABLE table_name
(
<column definition 1>,
<column definition 2>,
............
<constraint_definition>);

<constraint_definition>=
[CONSTRAINT constraint_name] PRIMARY KEY (<column_name> [{
   
   ,
<column_name>}...]))

例:
emp1 という名前の新しいテーブルを作成します。列名は id、name、age、address です。id を主キーとして設定します。

create table emp1 
(
id int,
name varchar(20),
age int,
address varchar(30),
Constraint Key_ID primary key(id)
);

または

create table emp1 
(
id int primary key,
name varchar(20),
age int,
address varchar(30)
);

注: コードのバージョン 1 では、[Constraint Key_ID Primary key(id)] は ID 列を主キーとして設定するための標準コードです。Constraint は制約の固定形式です。Key_ID は設定された制約の名前です。自由に選択できます。主キーが唯一の制約です。キーワード、(id) は ID 列を一意になるように設定することを意味します

このボタンを使用すると、emp1 の ID がすでに主キーであり、キー マークがあることを確認できます。また、desc コマンドを使用して構造を表示することもできます。
ここに画像の説明を挿入します
ここに画像の説明を挿入します

4. 唯一の制約

のために使用される非主キー列に一意性を適用する=。
主キー制約に似ていますが、一意制約によって定義された列に適用されます。NULL値を許可する
できるテーブルの上に複数の一意の制約を作成する

文法:

CREATE TABLE table_name
(
<column_definition_1>,
<column_definition_2>,
.........
<constraint_definition>


<constraint_definition>=
[CONSTRAINT constraint_name] UNIQUE (<column_name> 
[{
   
   ,
<column_name>}...]))

例:

テーブル emp2 を設計します。電話は一意であることがわかっているので、前と同様に電話番号列を追加します。ID を主キーとして設計し、電話を一意であるように設計します。

create table emp2 
(
id int,
name varchar(20),
age int,
address varchar(30),
phone int,
Constraint Key_ID primary key(id),
Constraint Unique_Phone UNIQUE(phone)
);

または

create table emp2 
(
id int Primary Key,
name varchar(20),
age int,
address varchar(30),
phone int UNIQUE
);

注: コード バージョン 1 では、[Constraint Unique_Phone UNIQUE(phone)] は電話列を一意に設定するコードです。Constraint は制約の固定形式です。Unique_Phone は設定された制約の名前です。これは選択できます。 UNIQUE は一意制約のキーワードです。 , (phone) は、phone 列を一意に設定することを意味します。
ここに画像の説明を挿入します

5. 外部キー制約(詳細は後述)

1 つのテーブルのデータが別のテーブルのデータに依存している場合、2 つのテーブルの不整合を解消します。
テーブル内の外部キーは、常に他のテーブルの主キー列を参照します。
別のテーブルで外部キーとして参照される主キーを含むテーブルは、主テーブルまたは被参照テーブルと呼ばれます。
他のテーブルの主キーを参照する外部キーを含むテーブルは、トランザクション テーブルまたは参照テーブルと呼ばれます。

おすすめ

転載: blog.csdn.net/agatha_aggie/article/details/129294182