SQL-入门-5
约束
非空约束 NOT NULL
NOT NULL 约束强制列不接受 NULL 值,强制字段始终包含值,这意味着,如果不向字段添加值,就无法插入新纪录或者更新记录。
唯一约束 UNIQUE
UNIQUE 约束唯一标识数据库表中的每条记录
主键约束会自动定义一个 UNIQUE 约束,或者说主键约束是一种特殊的 UNIQUE 约束。但是二者有明显的区别:每个表可以有多个 UNIQUE 约束,但只能有一个主键约束
主键约束 PRIMARY KEY
PRIMARY KEY 约束唯一标识数据库表中的每条记录 ,简单的说,PRIMARY KEY = UNIQUE + NOT NULL ,从技术的角度来看,PRIMARY KEY 和 UNIQUE 有很多相似之处。但还是有以下区别:
NOT NULL UNIQUE 可以将表的一列或多列定义为唯一性属性,而 PRIMARY KEY 设为多列时,仅能保证多列之和是唯一的,具体到某一列可能会重复。
PRIMARY KEY 可以与外键配合,从而形成主从表的关系,而 NOT NULL UNIQUE 则做不到这一点
我们创建了个人信息数据表 Persons,我们希望每个人的标识符 P_Id 都是唯一的。
下面的 SQL 在 个人信息表 Persons 创建时,在 P_Id 列上添加 PRIMARY KEY 约束:
CREATE TABLE
Persons
(
P_Id
int NOT NULL,
LastName
varchar(255) NOT NULL,
FirstName
varchar(255),
Address
varchar(255),
City
varchar(255),
PRIMARY KEY (P_Id
)
);
命名并定义多个列的 PRIMARY KEY 约束,请使用下面的 SQL 语法:
CREATE TABLE
Persons
(
P_Id
int NOT NULL,
LastName
varchar(255) NOT NULL,
FirstName
varchar(255),
Address
varchar(255),
City
varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id
,LastName
)
)
注释:
在上面的实例中,只有一个主键 PRIMARY KEY(pk_PersonID)。然而,pk_PersonID 的值是由两个列(P_Id 和 LastName)组成的。
ALTER TABLE 时添加主键约束
ALTER TABLE
Persons
ADD PRIMARY KEY (P_Id
)
ALTER TABLE
Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id
,LastName
)
撤