在SQL Server中,约束是用于限制表中数据的完整性和一致性的一种机制,约束可以分为两类:主键约束(PRIMARY KEY)和唯一约束(UNIQUE),主键约束要求表中的某列或多列的组合具有唯一性,而唯一约束则要求表中的某列或多列的值具有唯一性,在本篇文章中,我们将通过图解的方式详细介绍如何在SQL Server中创建主键约束和唯一约束。
主键约束
主键约束是一种特殊的唯一约束,它要求表中的某列或多列的组合具有唯一性,主键约束的作用是确保表中的每一行都具有唯一的标识,从而保证数据的完整性和一致性。
1、1 创建主键约束的语法
创建主键约束的语法如下:
CREATE TABLE 表名 ( 列名1 数据类型, 列名2 数据类型, ..., CONSTRAINT 主键约束名 PRIMARY KEY (列名1, 列名2, ...) );
或者使用以下语法:
CREATE TABLE 表名 ( 列名1 数据类型, 列名2 数据类型, ..., CONSTRAINT 主键约束名 PRIMARY KEY (列名1 ASC, 列名2 ASC, ...) );
表名
是要创建的主键约束所在的表的名称;列名1
、列名2
等是要创建主键约束的列的名称;数据类型
是对应列的数据类型;主键约束名
是自定义的主键约束名称;ASC
表示升序排列,也可以省略。
1、2 创建主键约束的示例
假设我们有一个名为students
的表,包含id
、name
和age
三个字段,我们希望将id
字段设置为主键约束,可以使用以下SQL语句实现:
CREATE TABLE students ( id INT PRIMARY KEY, name NVARCHAR(50), age INT );
唯一约束
唯一约束要求表中的某列或多列的值具有唯一性,唯一约束的作用是确保表中的某些列的值不会重复。
2、1 创建唯一约束的语法
创建唯一约束的语法如下:
CREATE TABLE 表名 ( 列名1 数据类型, 列名2 数据类型, ..., CONSTRAINT 唯一约束名 UNIQUE (列名1, 列名2, ...) );
或者使用以下语法:
CREATE TABLE 表名 ( 列名1 数据类型, 列名2 数据类型, ..., CONSTRAINT 唯一约束名 UNIQUE (列名1 ASC, 列名2 ASC, ...) );
表名
是要创建的唯一约束所在的表的名称;列名1
、列名2
等是要创建唯一约束的列的名称;数据类型
是对应列的数据类型;唯一约束名
是自定义的唯一约束名称;ASC
表示升序排列,也可以省略。
2、2 创建唯一约束的示例
假设我们有一个名为students_info
的表,包含id
、name
和email
三个字段,我们希望将email
字段设置唯一约束,可以使用以下SQL语句实现:
CREATE TABLE students_info ( id INT PRIMARY KEY, name NVARCHAR(50), email NVARCHAR(50), CONSTRAINT unique_email UNIQUE (email) );
主键与唯一约束的区别与联系
主键和唯一约束都是用于限制表中数据的完整性和一致性的机制,但它们之间存在一些区别和联系:
1、主键要求表中的某列或多列的组合具有唯一性,而唯一约束要求表中的某列或多列的值具有唯一性,换句话说,主键是对整个行进行唯一性约束,而唯一约束是对某个字段进行唯一性约束。
2、一个表中只能有一个主键,但可以有多个唯一约束,这意味着在一个表中,我们可以将多个字段设置为唯一约束,但只能将一个字段或字段组合设置为主键。
3、如果一个表中没有设置主键,那么数据库会自动为该表创建一个名为IDENTITY_XXXX
的唯一标识符作为主键。XXXX
是一个由数据库自动生成的数字,如果一个名为students_info
的表中没有设置主键,那么数据库会自动创建一个名为IDENTITY_1
的唯一标识符作为主键。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/503455.html