SQLite高階 10 約束

2021-09-26 02:17:11 字數 2053 閱讀 1487

約束是作用於資料表中列上的規則,用於限制表中資料的型別。約束的存在保證了資料庫中資料的精確性和可靠性。

約束可以是列級或表級,列級約束作用於單一的列,而表級約束作用於整張資料表。

sqlite中常見的約束:

預設情況下,列可以儲存 null 值。如果您不想某列有 null 值,那麼需要在該列上定義此約束,指定在該列上不允許 null 值。

null 與沒有資料是不一樣的,它代表著未知的資料。

-- 例項

create table link_men (

id int primary key not null;

name text not null

)

default 約束在 insert into 語句沒有提供乙個特定的值時,為列提供乙個預設值。

-- 例項

create table link_men(

id int primary key not null;

name text not null;

address text not null;

salary real default 8000.00

)

unique 約束防止在乙個特定的列存在兩個記錄具有相同的值。

-- 例項

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

)

primary key 約束唯一標識資料庫表中的每條記錄。

主鍵必須包含唯一的值。

主鍵列不能包含 null 值。

每個表都應該有乙個主鍵,並且每個表只能有乙個主鍵。

-- 例項

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 指向另乙個表中的 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 約束啟用輸入一條記錄要檢查值的條件。如果條件值為 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)

);

SQLite高階 10 約束

約束是作用於資料表中列上的規則,用於限制表中資料的型別。約束的存在保證了資料庫中資料的精確性和可靠性。約束可以是列級或表級,列級約束作用於單一的列,而表級約束作用於整張資料表。sqlite中常見的約束 預設情況下,列可以儲存 null 值。如果您不想某列有 null 值,那麼需要在該列上定義此約束,...

SQLite高階 16 索引

目錄索引 index 是一種特殊的查詢表,資料庫搜尋引擎用來加快資料檢索。簡單地說,索引是乙個指向表中資料的指標。比如 在圖書館找書時,可以通過圖書編號 圖書分類等資訊快速索引到你要找的書。語法 create index index name on table name 索引列可以指定單列或多列 單...

SQL CHECK 約束 高階教程

check 約束用於限制列中的值的範圍。如果對單個列定義 check 約束,那麼該列只允許特定的值。如果對乙個表定義 check 約束,那麼此約束會在特定的列中對值進行限制。下面的 sql 在 persons 表建立時為 id p 列建立 check 約束。check 約束規定 id p 列必須只包...