SQLiteの制約2024 年の最新の入門チュートリアル。このコースでは NOT NULL制約,DEFAULT制約,UNIQUE制約,PRIMARY KEY制約,CHECK制約,制約を削除します, について学習できます。
制約は、施行のデータリスト上のルールです。 これらは、テーブルデータ型に挿入することができる制限するために使用されます。 これは、データベース内のデータの正確性と信頼性を確保します。
制約は、列または表レベルにすることができます。 列レベルの制約が列のみに適用され、テーブルレベルの制約は、テーブル全体に適用されます。
以下は、一般的にSQLiteの制約で使用されています。
NOT NULL制約:列がNULL値を持つことができないことを確認してください。
DEFAULT制約:列の値が指定されていない場合、列のデフォルト値が提供さ。
UNIQUE制約:列のすべての値が異なっていることを確認します。
主キー制約:一意のデータベーステーブル/レコード内の各ローを識別します。
CHECK制約:CHECK制約は、列のすべての値が一定の条件を満たしていることを保証します。
デフォルトでは、列はNULL値を保持できます。 あなたは列がNULL値を持っていたくない場合は、この列にNULL値を許可しない指定された列に、この制約を定義する必要があります。
NULL、ノーデータが同じではありません、それは未知のデータを表します。
たとえば、次の文は、新しいSQLiteのテーブルCOMPANYを作成し、ID、NAMEおよびNULL値を受け入れない指定AGE 3を含む5、追加します。
(表会社を作成 ID INT PRIMARY KEY NOT NULL、 名前テキスト、NOT NULL、 AGEのINT NOT NULLと、 ADDRESSのCHAR(50)、 SALARYのREAL );
INSERT INTO文のDEFAULT制約は、デフォルト値を持つカラムの特定の値を提供していません。
たとえば、次の文は、新しいSQLiteのテーブルCOMPANYを作成し、5を追加しました。 ここでは、SALARY列のデフォルト値は5000.00に設定されています。 INSERT INTO文が列の値を提供していないときに、列は5000.00に設定されます。
(表会社を作成 ID INT PRIMARY KEY NOT NULL、 名前テキスト、NOT NULL、 AGEのINT NOT NULLと、 ADDRESSのCHAR(50)、 SALARYのREALのDEFAULT 50000.00 );
UNIQUE制約は、2つのレコードの存在が特定の列に同じ値を持つ防ぎます。 COMPANYテーブルでは、たとえば、2人以上が同じ年齢を持っていないようにしたいことがあります。
たとえば、次の文は、新しいSQLiteのテーブルCOMPANYを作成し、5を追加しました。 ここでは、UNIQUEにAGE列には、あなたが同じ年齢レコードの2を持つことはできません。
(表会社を作成 ID INT PRIMARY KEY NOT NULL、 名前テキスト、NOT NULL、 AGE INT NOT NULL UNIQUE、 ADDRESSのCHAR(50)、 SALARYのREALのDEFAULT 50000.00 );
PRIMARY KEY制約は一意にデータベーステーブル内の各レコードを識別する。 テーブルには複数のUNIQUE列が、1つのプライマリキーを持つことができます。 データベースのテーブルの設計では、主キーは非常に重要です。 主キーは固有のIDです。
私たちは、参照されるテーブルの行に主キーを使用します。 他のテーブルの外部キーに主キーによってテーブル間のリレーションシップを作成します。 SQLiteの中で「長年のコーディング監督」として、主キーは、別の場所で他のデータベースである、NULLにすることができます。
主キーは一意にデータベーステーブル/レコード内の各行を識別するテーブル内のフィールドです。 主キーは、一意の値が含まれている必要があります。 主キー列はNULL値を持つことはできません。
表に1つの主キーを持つことができ、それは、1つまたは複数のフィールドから構成されてもよいです。 場合、それらは複合キー主キーとして複数のフィールドと呼ばれます。
任意のフィールド上の表に主キーが定義されている場合は、これらのフィールドに同じ値を持つ2つのレコードを持つことはできません。
私たちは、プライマリ・キー・テーブルとび様々な例としてIDを使用して作成さ見てきました:
(表会社を作成 ID INT PRIMARY KEY NOT NULL、 名前テキスト、NOT NULL、 AGEのINT NOT NULLと、 ADDRESSのCHAR(50)、 SALARYのREAL );
CHECK制約を使用すると、条件値を確認したいレコードを入力することが可能となります。 条件がfalseの場合、レコードが制約に違反して、テーブルに入力することはできません。
たとえば、次の表では、新しいSQLiteの会社を作成し、5を追加します。 ここでは、SALARY列のチェックを追加しますので、賃金はゼロにすることはできません。
(表COMPANY3をCREATE ID INT PRIMARY KEY NOT NULL、 名前テキスト、NOT NULL、 AGEのINT NOT NULLと、 ADDRESSのCHAR(50)、 SALARY REAL CHECK(SALARY> 0) );
SQLiteは、ALTER TABLEの限定されたサブセットをサポートしています。 SQLiteのではALTER、中TABLEコマンドは、ユーザがテーブルの名前を変更することを可能にする、または既存のテーブルに新しい列を追加します。 列の名前を変更し、1を落としたり、テーブル制約から、追加または削除することは不可能です。