SQL PRIMARY KEY:如何创建和添加到现有表

SQL 中的主键是什么?

主键是用于唯一标识记录的字段或字段组合。主键是唯一的一列或一组列。换句话说,主键的每个值都是唯一的。

主键规则

  • 每个表只能有一个 SQL 主键。
  • 所有值都是唯一的,主键 SQL 值可以唯一地标识每一行。
  • 系统不允许插入表中已存在主键的行(SQL Server 主键)。
  • 主键不能为空。

下面的图总结了 SQL 主键的所有上述要点。

Rules for Primary Key in SQL
SQL 主键如何工作

如何在 SQL Server 中创建主键

我们可以通过两种方式创建主键:

1. SQL Server Management Studio

2. T-SQL:创建新表时创建主键

SQL Server Management Studio

步骤 1)右键单击表名。单击“设计”。

Create Primary Key in SQL Server

步骤 2)右键单击列名。单击“设置主键”

Create Primary Key in SQL Server

结果:Course_Id 现在是主键。

Create Primary Key in SQL Server

T-SQL:创建新表时创建主键。

以下是使用 T-SQL 创建带主键的表的语法

语法

CREATE TABLE <Table_Name>
(
Column1 datatype,
Column2 datatype,CONSTRAINT <Name> PRIMARY KEY (Column name)
.
);

让我们创建一个只有一列是 SQL 主键的表。

查询

CREATE TABLE COURSE_TSQL_PK 
(Course_ID Int not Null,
 Course_name Varchar(20)
 CONSTRAINT PK PRIMARY KEY (Course_ID)	
)

步骤 1)单击“执行”运行查询。

Create a Primary key while creating a New Table

结果:Course_Id 现在是主键。

Create a Primary key while creating a New Table

示例:让我们看看它是否允许输入具有相同 Course ID 的多条记录。

步骤 1)插入 4 行,Course_ID 不同

Insert into COURSE_TSQL_PK values (1,'SQL');
Insert into COURSE_TSQL_PK values (2,'Python');
Insert into COURSE_TSQL_PK values (3,'SQL');
Insert into COURSE_TSQL_PK values (4,'C');

步骤 2)运行 Select 查询,验证所有数据是否成功插入。

Create a Primary key while creating a New Table

注意:我们可以在非主键列中插入重复值。

步骤 3)现在让我们尝试插入具有现有 Course_ID(主键)的新记录。

Insert into COURSE_TSQL_PK values (4,'JAVA');

结果:由于 Course_ID 列(为主键)中已存在 4,因此系统不允许插入新值。

Create a Primary key while creating a New Table

如何为 SQL 中的现有表添加主键?

现在我们将看到如何在 SQL 中为现有表添加主键

您可以使用 ALTER 语句创建主键。但是,主键只能在定义为 NOT NULL 的列上创建。您不能在允许 NULL 的列上创建主键。如果您需要这样做,则必须删除并重新创建表。

这是语法

ALTER TABLE tableName
ADD CONSTRAINT constraintName PRIMARY KEY (column_1, column_2, ... column_n);

例如

ALTER TABLE students
ADD CONSTRAINT students_pk PRIMARY KEY (admission);

Add Primary Key to Existing Table in SQL

我们已向现有表添加了一个主键约束。该约束已添加到 admission 列上,并命名为 students_pk。

有趣的事实!

  • 主键可以是多个列的组合。这种组合称为复合主键
  • 主键最多可以包含 16 列。

摘要

  • 每个表只能有一个主键
  • 所有值都是唯一的,可以唯一地标识每一行。