SQL 約束用于規(guī)定表中的數(shù)據(jù)規(guī)則。
在 SQL 中,我們有如下約束:
NOT NULL - 指示某列不能存儲(chǔ) NULL 值。
UNIQUE - 保證某列的每行必須有唯一的值。
PRIMARY KEY - NOT NULL 和 UNIQUE 的結(jié)合。確保某列(或兩個(gè)列多個(gè)列的結(jié)合)有唯一標(biāo)識(shí),有助于更容易更快速地找到表中的一個(gè)特定的記錄。
FOREIGN KEY - 保證一個(gè)表中的數(shù)據(jù)匹配另一個(gè)表中的值的參照完整性。CHECK - 保證列中的值符合指定的條件。
DEFAULT - 規(guī)定沒有給列賦值時(shí)的默認(rèn)值。
例如,以下表示 “name” 列不允許 NULL 值。
name varchar(100) NOT NULL
約束可以在創(chuàng)建表時(shí)規(guī)定(通過 CREATE TABLE 語句),或者在表創(chuàng)建之后規(guī)定(通過 ALTER TABLE 語句)。
username (55)
AUTO INCREMENT 會(huì)在新記錄插入表中時(shí)生成一個(gè)唯一的數(shù)字。
我們通常希望在每次插入新記錄時(shí),自動(dòng)地創(chuàng)建主鍵字段的值。
我們可以在表中創(chuàng)建一個(gè) AUTO INCREMENT 字段。
下面的 SQL 語句把 "UserID" 列定義為 auto-increment 主鍵字段:
UserID int NOT NULL AUTO_INCREMENT, PRIMARY KEY (UserID)
id int NOT NULL
下面的例子演示如何使用約束創(chuàng)建表。
CREATE TABLE users ( id int NOT NULL AUTO_INCREMENT, username varchar(40) NOT NULL, password varchar(10) NOT NULL, PRIMARY KEY(id) );
上面的 SQL 強(qiáng)制 “id”,“username” 和 “password” 列不接受NULL值,還將 “id” 列定義為 auto-increment 主鍵字段。
“users” 表如下所示:
CREATE users( id int NULL , name varchar(30) NOT NULL, (id) );