深入探索MSSQL查看约束

1. 约束(constraints)介绍

在MSSQL中,约束指的是为表定义的规则。它们可以用于强制执行列数据的完整性(如主键或唯一约束),或保证数据在表级别(如检查约束或默认值约束)上的完整性。MSSQL支持以下类型的约束:NULL、NOT NULL、CHECK、DEFAULT、UNIQUE、PRIMARY KEY、FOREIGN KEY.

2. 主键约束(primary key constraints)

2.1 何为主键约束

主键(primary key)是用于唯一标识表中每个行的列,而主键约束(primary key constraints)确保该列不为空并且没有重复值。每张表都只能有一个主键约束。

2.2 创建主键约束

下面的代码演示了如何为表创建主键约束:

CREATE TABLE Student(

ID INT PRIMARY KEY,

Name VARCHAR(50) NOT NULL,

Age INT NOT NULL,

Gender CHAR(1) NOT NULL

);

上面的代码在Student表中创建了名为ID的主键约束,这将确保ID列的唯一性,因为主键的值必须是唯一的。

3. 唯一约束(unique constraints)

3.1 何为唯一约束

唯一(unique)约束确保列中的所有值都是唯一的。与主键约束不同,唯一约束可以包含多个列,并且只有其中一个列必须唯一。

3.2 创建唯一约束

下面的代码演示了如何为表创建唯一约束:

CREATE TABLE Student(

ID INT UNIQUE,

Name VARCHAR(50) NOT NULL,

Age INT NOT NULL,

Gender CHAR(1) NOT NULL

);

可以看到,上面的代码使用UNIQUE关键字创建了名为ID的唯一约束。

4. 外键约束(foreign key constraints)

4.1 何为外键约束

外键(foreign key)用于确保使用的数据在两个表之间保持一致。外键约束(foreign key constraints)使用一个表的列的值作为另一个表的主键。

4.2 创建外键约束

下面的代码演示如何为表创建外键约束:

CREATE TABLE Customers(

ID INT PRIMARY KEY,

Name VARCHAR(50) NOT NULL,

Age INT NOT NULL,

City VARCHAR(50) NOT NULL

);

CREATE TABLE Orders(

OrderID INT PRIMARY KEY,

OrderDate DATE NOT NULL,

CustomerID INT FOREIGN KEY REFERENCES Customers(ID)

);

上面的代码中,在Orders表中创建了一个外键(CustomerID),它使用Customers表的主键(ID)作为参考。这将确保Order表中每个行的CustomerID列只包含Customers表中已有的值,因此保证了数据的一致性。

5. 检查约束(check constraints)

5.1 何为检查约束

检查约束(check constraints)用于限制列中的值。例如,可以使用检查约束确保Age列中的值始终大于等于0,如下所示:

CREATE TABLE Student(

ID INT PRIMARY KEY,

Name VARCHAR(50) NOT NULL,

Age INT NOT NULL CHECK (Age>=0),

Gender CHAR(1) NOT NULL

);

上面的代码中,使用CHECK约束限制了Age列中的值必须大于等于0。

6. 总结

在本文中,在MSSQL中介绍了约束的概念,包括主键约束、唯一约束、外键约束和检查约束。使用约束可以保证数据的完整性,将限制不必要的或无效的数据插入数据库。根据实际需要,可以在表中使用一个或多个约束。

数据库标签