📜  如何在 SQL Server 中创建复合主键?

📅  最后修改于: 2022-05-13 01:54:57.589000             🧑  作者: Mango

如何在 SQL Server 中创建复合主键?

在本文中,我们将了解什么是复合主键以及如何创建复合主键。正如我们所知,主键是被选择来唯一标识表中一行的候选键。 A And Primary Key 不允许 NULL 值。

复合主键

当两个或多个列在一起时 标识表中的唯一行称为复合主键。复合键是由给定表的多个属性或列组合而成的键。它可以是候选键或主键。

为了更好的理解,我们将借助示例来实现,首先,我们将创建一个数据库名称,该数据库的名称将是 Sample。在数据库内部,我们将创建一个 Compo。

步骤 1:创建数据库

对于数据库创建,我们将在 SQL 平台中使用查询。

询问:

Create datebase sample

步骤 2:使用数据库

为了使用数据库,我们将在 SQL 平台中使用另一个查询,如 Mysql。

询问:

Use Sample 

第 3 步:使用复合主表创建表

我们将使用以下查询来创建复合键。

询问:

CREATE TABLE COMPO
(
EMP_ID INT,
DEPT_ID INT,
EMPNAME VARCHAR(25),
GENDER VARCHAR(6),
SALARY INT -->              
//This statement will create a
//composite Primary Key from
  PRIMARY KEY (EMP_ID,DEPT_ID)
  with the help of Column EMP_ID and DEPT_ID
);

步骤4:创建表后,我们可以借助下面的Query来对齐表的视图和元数据。它将返回架构、列、数据类型以及大小和约束。

询问:

EXEC sp_help COMPO;

输出:

第 5 步:在表中插入数据。

我们将使用下面的 SQL 查询在创建的表中插入数据。

询问:

INSERT INTO COMPO
VALUES (101,001,'RAHUL','MALE',22000),
(102,002,'RAJ','MALE',25000),
(103,003,'PRIYANKA','FEMALE',25500),
(102,003,'VIJAY','MALE',25000),
(101,004,'SHWETA','FEMALE',22000),
(104,003,'SATYA','MALE',23000),
(105,005,'VIVEK','MALE',28000); 

步骤 6:验证插入的数据

在表中插入数据后我们可以证明或确认我们必须正确插入哪些数据。在下面的查询的帮助下。

询问:

SELECT * FROM  COMPO

输出:

第 7 步:我们知道主键具有唯一值,但在上表中,EMP_ID 具有重复值。因为它单独(EMP_ID)不是主键,所以它可以包含重复的值。同样,DEPT_ID 也有重复的值,因为它也不是主键。但在上面的记录中,EMP_ID 和 DEPT_ID 并不重复。因为它是一个复合主键。这里 (EMP_ID + DEPT_ID) 是唯一标识上表中的行。

为了从 COMPO 中找到唯一值我们将执行如下。

询问:

SELECT EMPNAME,SALARY FROM COMPO WHERE EMP_ID= 102 AND DEPT_ID =6; 

输出: