SQL 约束 用于限制加入表的数据类型。
注意:可以通过在创建表时规定约束(通过CREATE TABLE 语句),或者在表创建之后也可以通过(ALTER TABLE 语句)。
主要的约束有以下几点:
- NOT NULL
- UNIQUE
- PRIMARY KEY
- FOREIGN KEY
- CHECK
- DEFAULT
1>NOT NULL
SQL NOT NULL 约束用于强制列不接受 NULL 值
例如,在创建一个Person表中,设置ID_P这一列的数据不接受空值,这意味着,如果不为该字段添加值,那么将无法插入和更新该列的记录,代码如下:
CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) )
2>UNIQUE
SQL UNIQUE 约束,用于约束该唯一标识数据库表中的每条记录。
例如,在Persons 表中,规定ID_P这一列的数据为不重复的int型数据,代码如下:
CREATE TABLE Persons ( Id_P int NOT NULL UNIQUE, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) )
那么意味着ID_P这一列的数据不能为空值,并且都是唯一标识。
3>PRIMARY KEY
PRIMARY KEY 约束唯一标识数据库表中的每条记录.
注意:
主键必须包含唯一的值.
主键列不能包含 NULL 值.
每个表都应该有一个主键,并且每个表只能有一个主键.
例如,在Persons表中,设置ID_P为主键,那么ID_P将作为每条记录的唯一标识,代码如下:
CREATE TABLE Persons ( Id_P int NOT NULL PRIMARY KEY, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) )
4>FOREIGN KEY
一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。
FOREIGN KEY 也被称之为外键,让我们用一个例子来说明主键和外键的关系。
请看两个表:
注意:
"Orders" 中的 "Id_P" 列指向 "Persons" 表中的 "Id_P" 列。
"Persons" 表中的 "Id_P" 列是 "Persons" 表中的 PRIMARY KEY。
"Orders" 表中的 "Id_P" 列是 "Orders" 表中的 FOREIGN KEY。
FOREIGN KEY 约束用于预防破坏表之间连接的动作。
FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。
示例代码:
CREATE TABLE Orders ( Id_O int NOT NULL PRIMARY KEY, OrderNo int NOT NULL, Id_P int FOREIGN KEY REFERENCES Persons(Id_P) )