もっと詳しく

主キーは、列のすべての値がnullで一意でないことを確認するために使用されます。 このキーは、nullではない一意の制約プロパティを1つのキーに結合します。 このタイプのキーは、任意のデータタイプに適用でき、データの欠落や重複を回避するために使用されます。 テーブルごとに持つことができる主キーは1つだけです。 テーブルに主キーを作成すると、その特定の列にnullではなく一意の値がテーブルに強制的に含まれます。 値が準拠していない場合、行を挿入または更新することはできません。 複数の列に主キーを作成することもできます。 これは複合キーと見なされます。 この場合、複合キーは行ごとに一意である必要があります。そうでない場合、行を挿入または更新できませんでした。

1つまたは複数の列のすべての値が互いに異なることを確認するには、一意の制約を使用します。 このタイプのキーは、任意のデータタイプに適用でき、重複データを回避するために使用されます。 複数の列に一意の制約を適用して、それらの複数の列に一意の値を作成できます。 null値を含めることができます。 1つの列に一意の制約を作成すると、テーブルはその特定の列に一意の値を持つようになります。 それらが一意でない場合、行を挿入または更新することはできません。

  • テーブル内の一意キーはnullにすることができますが、MySQL、Oracleなどのリレーショナルデータベースのテーブルでは、少なくとも1つは主キーをnullにすることはできません。
  • 主キーは、同じテーブル内の複数の一意のキーの組み合わせにすることができます。
  • MySQL、Oracle、Sybaseなどのリレーショナルデータベースでは、テーブルごとに1つの主キーしか存在できませんが、テーブルごとに複数の一意のキーが存在する可能性があります。
  • 一意キーは一意制約を使用して表されますが、主キーは任意のテーブルの主キー制約を使用して作成され、自動的に一意制約を取得します。
  • 多くのデータベースエンジンは、クラスター化インデックスを主キーに自動的に配置します。テーブルごとに1つのクラスター化インデックスしか持てないため、他の一意のキーで同時に使用することはできません。
SQL> DESC TEMPTABLE;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ID                                        NOT NULL NUMBER
 NAME                                               VARCHAR2(20)
 PHONENO                                            VARCHAR2(20)
SQL> INSERT INTO TEMPTABLE Values(101,'Ravi','9021150300');

1 row created.

SQL> INSERT INTO TEMPTABLE Values(102,'Siva','7221150300');

1 row created.

次に、IDをNULLとして挿入してみます。

SQL> INSERT INTO TEMPTABLE Values(NULL,'Jeevan','9412368279');
INSERT INTO TEMPTABLE Values(NULL,'Jeevan','9412368279')
                             *
ERROR at line 1:
ORA-01400: cannot insert NULL into ("HR"."TEMPTABLE"."ID")

次に、PhoneNoをNULLとして挿入します。

SQL> INSERT INTO TEMPTABLE Values(103,'Jeevan',NULL);

1 row created.

一意キーにさらにNULL値を挿入します。

SQL> INSERT INTO TEMPTABLE Values(104,'Naveen',NULL);

1 row created.

ご覧のとおり、主キーはNULL値を許可していません。 一意のキーには、1つ以上のNULL値を含めることができます。

SQL> INSERT INTO TEMPTABLE Values(104,'Naveen',NULL);
INSERT INTO TEMPTABLE Values(104,'Naveen',NULL)
*
ERROR at line 1:
ORA-00001: unique constraint (HR.PK) violated

NULLを挿入することはできますが、重複する値を挿入することはできません。 違いを確認して確認できる別の例。

The post PRIMARYキーとUNIQUEキーの違いは何ですか–オタク日記 appeared first on Gamingsym Japan.