SQLite 約束

約束是對表的數(shù)據(jù)列強制執(zhí)行的規(guī)則。這些用于限制可以進入表的數(shù)據(jù)類型。這樣可以確保數(shù)據(jù)庫中數(shù)據(jù)的準確性和可靠性。

約束可以是列級別或表級別。列級約束僅應(yīng)用于一列,而表級約束則應(yīng)用于整個表。

以下是SQLite中可用的常用約束。

  • NOT NULL 約束?確保列不能為NULL值。

  • DEFAULT 約束?如果未指定,則為列提供默認值。

  • UNIQUE 約束?確保列中的所有值均不同。

  • PRIMARY Key ?唯一標識數(shù)據(jù)庫表中的每一行/記錄。

  • CHECK 約束?確保列中的所有值都滿足某些條件。

NOT NULL 約束

默認情況下,列可以保存NULL值。如果您不希望某列具有NULL值,則需要在此列上定義此類約束,以指定該列現(xiàn)在不允許NULL。

NULL等于沒有數(shù)據(jù),它代表未知數(shù)據(jù)。

示例

例如,下面的SQLite語句創(chuàng)建一個名為COMPANY的新表,并添加五列,其中三列(ID,NAME和AGE)指定不接受NULL。

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

DEFAULT 約束

當INSERT INTO語句未提供特定值時,DEFAULT約束將為列提供默認值。

示例

例如,以下SQLite語句創(chuàng)建一個名為COMPANY的新表并添加五列。此處,SALARY列默認情況下設(shè)置為5000.00,因此,如果INSERT INTO語句不為此列提供值,則默認情況下,此列將設(shè)置為5000.00。

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL    DEFAULT 50000.00
);

UNIQUE 約束

UNIQUE約束可防止兩個記錄在特定列中具有相同的值。例如,在COMPANY表中,您可能要防止兩個或多個人具有相同的年齡。

示例

例如,以下SQLite語句創(chuàng)建一個名為COMPANY的新表并添加五列。在這里,AGE列設(shè)置為UNIQUE,因此您不能擁有兩個具有相同年齡的記錄-

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL UNIQUE,
   ADDRESS        CHAR(50),
   SALARY         REAL    DEFAULT 50000.00
);

PRIMARY Key約束

PRIMARY KEY約束唯一地標識數(shù)據(jù)庫表中的每個記錄。可以有更多的UNIQUE列,但表中只有一個主鍵。在設(shè)計數(shù)據(jù)庫表時,主鍵很重要。主鍵是唯一的ID。

我們使用它們來引用表行。在表之間創(chuàng)建關(guān)系時,主鍵成為其他表中的外鍵。由于“長期的編碼監(jiān)督”,SQLite中的主鍵可以為NULL。其他數(shù)據(jù)庫則不是這種情況。

主鍵是表中的字段,它唯一地標識數(shù)據(jù)庫表中的每一行/記錄。主鍵必須包含唯一值。主鍵列不能具有NULL值。

一個表只能有一個主鍵,它可以由單個或多個字段組成。當多個字段用作主鍵時,它們稱為composite key

如果表在任何表上定義了主鍵field(s),則不能有兩個記錄具有相同的值field(s)。

示例

您已經(jīng)在上面看到了許多示例,在這些示例中,我們創(chuàng)建了以ID為主鍵的COMPANY表。

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

CHECK約束

CHECK 約束使條件能夠檢查輸入到記錄中的值。如果條件的計算結(jié)果為false,則記錄違反了約束且未輸入到表中。

示例

例如,以下SQLite創(chuàng)建一個名為COMPANY的新表并添加五列。在這里,我們添加了一個帶有SALARY的CHECK列,因此您不能有任何SALARY 0。

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

刪除約束

SQLite支持ALTER TABLE的有限子集。SQLite中的ALTER TABLE命令允許用戶重命名表或向現(xiàn)有表添加新列。不能重命名列、刪除列或在表中添加或刪除約束。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清