溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SQLite約束實(shí)例分析

發(fā)布時(shí)間:2022-02-16 09:32:34 來源:億速云 閱讀:132 作者:iii 欄目:開發(fā)技術(shù)

這篇“SQLite約束實(shí)例分析”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“SQLite約束實(shí)例分析”文章吧。

SQLite約束實(shí)例分析

NOT NULL 約束

默認(rèn)情況下,列可以保存 NULL 值。如果您不想某列有 NULL 值,那么需要在該列上定義此約束,指定在該列上不允許 NULL 值。 NULL 與沒有數(shù)據(jù)是不一樣的,它代表著未知的數(shù)據(jù)。

實(shí)例

例如,下面的 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 約束

DEFAULT 約束在 INSERT INTO 語句沒有提供一個(gè)特定的值時(shí),為列提供一個(gè)默認(rèn)值。

實(shí)例

例如,下面的 SQLite 語句創(chuàng)建一個(gè)新的表 COMPANY,并增加了五列。在這里,SALARY 列默認(rèn)設(shè)置為 5000.00。所以當(dāng) INSERT INTO 語句沒有為該列提供值時(shí),該列將被設(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è)特定的列存在兩個(gè)記錄具有相同的值。在 COMPANY 表中,例如,您可能要防止兩個(gè)或兩個(gè)以上的人具有相同的年齡。

實(shí)例

例如,下面的 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ù)庫表中的每個(gè)記錄。在一個(gè)表中可以有多個(gè) UNIQUE 列,但只能有一個(gè)主鍵。在設(shè)計(jì)數(shù)據(jù)庫表時(shí),主鍵是很重要的。主鍵是唯一的 ID。

我們使用主鍵來引用表中的行??赏ㄟ^把主鍵設(shè)置為其他表的外鍵,來創(chuàng)建表之間的關(guān)系。由于”長(zhǎng)期存在編碼監(jiān)督”,在 SQLite 中,主鍵可以是 NULL,這是與其他數(shù)據(jù)庫不同的地方。 主鍵是表中的一個(gè)字段,唯一標(biāo)識(shí)數(shù)據(jù)庫表中的各行/記錄。主鍵必須包含唯一值。主鍵列不能有 NULL 值。 一個(gè)表只能有一個(gè)主鍵,它可以由一個(gè)或多個(gè)字段組成。當(dāng)多個(gè)字段作為主鍵,它們被稱為復(fù)合鍵。 如果一個(gè)表在任何字段上定義了一個(gè)主鍵,那么在這些字段上不能有兩個(gè)記錄具有相同的值。

實(shí)例

已經(jīng)看到了我們創(chuàng)建以 ID 作為主鍵的 COMAPNY 表的各種實(shí)例:

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

CHECK 約束

CHECK 約束啟用輸入一條記錄要檢查值的條件。如果條件值為 false,則記錄違反了約束,且不能輸入到表。

實(shí)例

例如,下面的 SQLite 創(chuàng)建一個(gè)新的表 COMPANY,并增加了五列。在這里,我們?yōu)?SALARY 列添加 CHECK,所以工資不能為零:

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)有表添加一個(gè)新的列。重命名列,刪除一列,或從一個(gè)表中添加或刪除約束都是不可能的。

以上就是關(guān)于“SQLite約束實(shí)例分析”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)
推薦閱讀:
  1. Oracle 約束
  2. MySQL約束

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI