1. 程式人生 > >SQL約束(主鍵約束、外來鍵約束、不允許空值、值唯一、值預設、值檢查)

SQL約束(主鍵約束、外來鍵約束、不允許空值、值唯一、值預設、值檢查)

NOT NULL 不允許空值約束

NOT NULL 約束強制列不接受 NULL 值(NULL值就是沒有值或缺值)。NOT NULL 約束強制欄位始終包含值,即不向欄位新增值,就無法插入新記錄或者更新記錄,也就是在插入或更新行時該列必須有值。

注意:NULL值時沒有值,它不是空串、空格等。空串、空格等是一個有效的值,它不是無值。

CREATE TABLE 表名
(
    列名稱 資料型別以及長度 NOTNULL,
    ……
);

UNIQUE 唯一值約束

UNIQUE 約束唯一標識資料庫表中的每條記錄。UNIQUE 和 PRIMARY KEY 主鍵約束均為列或列集合提供了唯一性的保證。PRIMARY KEY 主鍵約束擁有自動定義的 UNIQUE 約束。

注意:每個表可以有多個 UNIQUE 約束,但是每個表只能有一個 PRIMARY KEY 約束。

CREATE TABLE 表名
(
    列名稱 資料型別以及長度 UNIQUE;
    ……
);


MySQL語法:
CREATE TABLE 表名
(
    列名稱 資料型別以及長度;
    UNIQUE (列名稱);
    ……
);


為多個列定義 UNIQUE 約束
方法一:(一次性指定)
CREATE TABLE 表名
(
    列名稱1 資料型別以及長度 UNIQUE;
    列名稱2 資料型別以及長度 UNIQUE;
    ……
    CONSTRAINT 約束名 UNIQUE (列名稱1,列名稱2,……)
);
方法二:(對每哥列進行指定)
CREATE TABLE 表名
(
    列名稱1 資料型別以及長度 UNIQUE;
    列名稱2 資料型別以及長度 UNIQUE;
    ……
);