SQLiteの高度-10。制約

制約

制約は、テーブルの列内のデータ型のデータテーブルの制限に関する規則に適用されます。制約は、データベース内の精度と信頼性のデータを確実にあります。
制約は、列または表レベル、単一のカラムに適用し、カラムレベルの制約は、テーブルレベルの制約は、全体のデータテーブルに適用することができます。

SQLiteの一般的な制約:

  • NOT NULL制約:列がNULL値を持つことができないことを確認してください。
  • DEFAULT制約:列の値が挿入されていない場合、その列のデフォルト値を提供します。
  • UNIQUE制約:列のすべての値が異なっていることを保証します。
  • PRIMARY KEY制約:一意にデータベーステーブルを識別するデータ。
  • FOREIGN KEY制約:テーブルは別のテーブルでFOREIGN KEY PRIMARY KEYを指しています。
  • 制約をチェック:すべての値が列に一定の条件を満たしていることを確実にするために。

NOT NULL制約

デフォルトでは、列にはNULL値を保持することができます。あなたは、列がNULL値を持っていたくない場合は、NULL値がこの列に許可されていません指定された列に、この制約を定義する必要があります。

NULLとデータのない、それは未知のデータを表し、同じではありません。

-- 实例
CREATE TABLE link_men (
    ID INT PRIMARY KEY      NOT NULL;
    NAME           TEXT     NOT NULL
)

DEFAULT制約

INSERT INTO文でDEFAULT制約は、デフォルト値を提供するために、列の特定の値を提供していません。

-- 实例
CREATE TABLE link_men(
    ID INT PRIMARY KEY      NOT NULL;
    NAME           TEXT     NOT NULL;
    ADDRESS        TEXT     NOT NULL;
    SALARY         REAL     DEFAULT 8000.00
)

UNIQUE制約

UNIQUE制約は、特定の列に同じ値を有する2つのレコードが存在することを防止します。

-- 实例
CREATE TABLE link_men(
    ID INT PRIMARY KEY      NOT NULL;
    NAME           TEXT     NOT NULL;
    AGE            INT      NOT NULL UNIQUE;
    ADDRESS        TEXT;
    SALARY        REAL DEFAULT 8000.00
)

PRIMAY KEY制約

PRIMARY KEY制約は、一意のデータベーステーブル内の各レコードを識別する。
主キーは、一意の値が含まれている必要があります。
主キー列がNULL値を含めることはできません。
各テーブルには主キーを持っている必要があり、各テーブルには1つのプライマリキーを持つことができます。

-- 实例
CREATE TABLE link_men(
    ID INT PRIMARY KEY      NOT NULL;
    NAME           TEXT     NOT NULL;
    AGE            INT      NOT NULL UNIQUE;
    ADDRESS        TEXT;
    SALARY       , REAL DEFAULT 8000.00
)

FOREIGN KEY制約

別のテーブルにFOREIGN KEY PRIMARY KEYを指しているテーブル。

-- 实例
CREATE TABLE link_men (
    ID INT PRIMARY KEY     NOT NULL;
    NAME           TEXT    NOT NULL;
    AGE            INT     NOT NULL UNIQUE;
    ADDRESS        TEXT;
    SALARY         REAL DEFAULT 8000.00;
    FOREIGN KEY (P_ID) REFERENCES persons(P_ID);
)

CHECK制約

CHECK制約を使用すると、条件値を確認したいレコードを入力を可能にします。条件がfalseの場合、レコードが制約に違反して、テーブルに入力することはできません。

CREATE TABLE link_men(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        TEXT,
   SALARY         REAL    CHECK(SALARY > 0)
);

おすすめ

転載: www.cnblogs.com/haitao130v/p/11334389.html