在之前提到了SQL Server的主键与外键约束,今天我们来好好的了解下SQL Server的其它约束,今天我们要介绍的是Not NULL与唯一约束。
SQL Server NOT NULL约束只是指定列不能为 NULL 值。 (如图所示)以下示例为列创建一个具有NOT NULL约束的表:persons ,它具有以下几个字段: first_name ,last_name和email:
请注意,上面几列中,将 NOT NULL 约束作为列约束。 默认情况下,如果未指定NOT NULL约束,则SQL Server将允许该列接受 NULL 。 在此示例中,只有 phone 列可以接受 NULL 。
SQL Server UNIQUE 约束用于确保存储在列或列组中的数据在表中的行中是唯一的。 以下语句创建一个表: hr.persons ,其 email 邮件列中的数据在表的行中是唯一的:
在此语法中,将 UNIQUE 约束定义为列约束。 还可以将 UNIQUE 约束定义为表约束:
SQL Server自动创建 UNIQUE 索引以强制存储在参与 UNIQUE 约束的列中的数据的唯一性。 因此,如果尝试插入重复行,SQL Server将拒绝更改并返回一条错误消息,提示说已违反 UNIQUE 约 束。尽管 UNIQUE 和 PRIMARY KEY 约束都强制数据的唯一性,但是当要强制实现不是主键列的列或列组的唯 一性时,应使用 UNIQUE 约束而不 是 PRIMARY KEY 约束。 与 PRIMARY KEY 约束不同, UNIQUE 约束允许 NULL 值。 此外, UNIQUE 约束将 NULL 视为常规值,因此,它只允许每列一个 NULL 。
在这里讲述了关于SQL Server NOT NULL约束与SQL Server UNIQUE 约束(也就是唯一约束)的一些基本知识,SQL Sever中还有许多的知识点。