亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

SQLite 約束

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

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

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

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

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

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

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

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

NOT NULL 約束

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

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

示例

例如,下面的SQLite語句創(chuàng)建一個(gè)名為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 約束

當(dāng)INSERT INTO語句未提供特定值時(shí),DEFAULT約束將為列提供默認(rèn)值。

示例

例如,以下SQLite語句創(chuàng)建一個(gè)名為COMPANY的新表并添加五列。此處,SALARY列默認(rèn)情況下設(shè)置為5000.00,因此,如果INSERT INTO語句不為此列提供值,則默認(rèn)情況下,此列將設(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約束可防止兩個(gè)記錄在特定列中具有相同的值。例如,在COMPANY表中,您可能要防止兩個(gè)或多個(gè)人具有相同的年齡。

示例

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

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約束唯一地標(biāo)識(shí)數(shù)據(jù)庫(kù)表中的每個(gè)記錄??梢杂懈嗟腢NIQUE列,但表中只有一個(gè)主鍵。在設(shè)計(jì)數(shù)據(jù)庫(kù)表時(shí),主鍵很重要。主鍵是唯一的ID。

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

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

一個(gè)表只能有一個(gè)主鍵,它可以由單個(gè)或多個(gè)字段組成。當(dāng)多個(gè)字段用作主鍵時(shí),它們稱為composite key。

如果表在任何表上定義了主鍵field(s),則不能有兩個(gè)記錄具有相同的值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 約束使條件能夠檢查輸入到記錄中的值。如果條件的計(jì)算結(jié)果為false,則記錄違反了約束且未輸入到表中。

示例

例如,以下SQLite創(chuàng)建一個(gè)名為COMPANY的新表并添加五列。在這里,我們添加了一個(gè)帶有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)有表添加新列。不能重命名列、刪除列或在表中添加或刪除約束。