SQLite-CONSTRAINTS(約束)


SQLite – CONSTRAINTS(約束)

約束是數據列在表上執行的規則。這些是用來限制的數據類型可以進入一個表。這樣可以確保數據的准確性和可靠性在數據庫中。    

級或表級約束可以列。列級約束是僅適用於一個列在表級約束應用於整個表。    

以下是常用的約束在SQLite

  • NOT NULL Constraint: 確保列不能為空值。
  • DEFAULT Constraint : 提供了一個列的默認值時沒有指定
  • UNIQUE Constraint: 確保列中的所有值是不同的。
  • PRIMARY Key: 惟一地標識每個行/記錄在一個數據庫表中
  • CHECK Constraint: 檢查約束確保列中的所有值滿足某些條件。

Not Null Constraint約束

默認情況下,一個列可以容納NULL值。如果你不想要一個列有一個空值,那么您需要定義這些約束在這列指定NULL列現在不允許。    

空不等於沒有數據,相反,它代表了未知數據。

例子:

例如,下面的SQLite語句創建一個新的表稱為公司,增加了五列,,ID和姓名和年齡,不接受指定null:

CREATE TABLE COMPANY(

ID INT PRIMARY KEY NOT NULL,

NAME TEXT NOT NULL,

AGE INT NOT NULL,

ADDRESS CHAR(50),

SALARY REAL

);

DEFAUL約束

默認約束提供了一個默認值時,一列插入語句不提供一個特定的值。

例子:

例如,下面的SQLite語句創建一個新的表稱為公司和5列補充道。這里,薪水列默認設置為5000.00,所以如果插入語句為本專欄不提供一個值,那么默認情況下,本專欄將被設置為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

);

UUNIQUE(唯一)約束

獨特的約束阻止兩個記錄有相同的值在一個特定的列。公司的表,例如,您可能想要阻止兩個或兩個以上的人擁有相同的年齡。

例子:

例如,下面的SQLite語句創建一個新的表稱為公司和5列補充道。列在這里,年齡是獨一無二的,所以你不能有兩個記錄相同的年齡:

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約束

主鍵約束惟一地標識每個記錄在一個數據庫表中。可以有更多獨特的列,但只有一個表中的主鍵。主鍵是重要的在設計數據庫表。主鍵是唯一的id。 

     

我們用它們來參考表行。主鍵成為其他表的外鍵,當創建表之間的關系。由於長期存在的編碼監督,主鍵在SQLite可以為空。與其他數據庫情況並非如此。

 

主鍵是表中的一個字段唯一地標識每一行/記錄在一個數據庫表中。主鍵必須包含唯一的值。一個主鍵列不能為空值。

 

一個表只能有一個主鍵,可能由單個或多個字段。當使用多個字段主鍵,他們被稱為一個composite key復合鍵)。

 

如果一個表定義一個主鍵字段(s),那么你不能有兩個記錄有相同的值,字段(s)。如果一個表上定義一個主鍵

 

例子:

你已經看過上面各種示例,我們創造了公司的表與ID主鍵:

CREATE TABLE COMPANY(

ID INT PRIMARY KEY NOT NULL,

NAME TEXT NOT NULL,

AGE INT NOT NULL,

ADDRESS CHAR(50),

SALARY REAL

);

Check約束

檢查約束使條件檢查進入一個記錄的值。如果條件的求值結果為false,記錄違反約束,不輸入到表。

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)

);

Dropping約束:

SQLite支持有限子集的ALTER TABLESQLiteALTER TABLE命令允許用戶重命名一個表或添加一個新的列到現有的表。不能重命名一個列,刪除一列,或者從一個表添加或刪除約束。

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM