SQL PRIMARY KEY:如何创建和添加到现有表
SQL 中的主键是什么?
主键是用于唯一标识记录的字段或字段组合。主键是唯一的一列或一组列。换句话说,主键的每个值都是唯一的。
主键规则
- 每个表只能有一个 SQL 主键。
- 所有值都是唯一的,主键 SQL 值可以唯一地标识每一行。
- 系统不允许插入表中已存在主键的行(SQL Server 主键)。
- 主键不能为空。
下面的图总结了 SQL 主键的所有上述要点。

如何在 SQL Server 中创建主键
我们可以通过两种方式创建主键:
1. SQL Server Management Studio
2. T-SQL:创建新表时创建主键
SQL Server Management Studio
步骤 1)右键单击表名。单击“设计”。
步骤 2)右键单击列名。单击“设置主键”
结果:Course_Id 现在是主键。
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)单击“执行”运行查询。
结果:Course_Id 现在是主键。
示例:让我们看看它是否允许输入具有相同 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 查询,验证所有数据是否成功插入。
注意:我们可以在非主键列中插入重复值。
步骤 3)现在让我们尝试插入具有现有 Course_ID(主键)的新记录。
Insert into COURSE_TSQL_PK values (4,'JAVA');
结果:由于 Course_ID 列(为主键)中已存在 4,因此系统不允许插入新值。
如何为 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);
我们已向现有表添加了一个主键约束。该约束已添加到 admission 列上,并命名为 students_pk。
有趣的事实!
- 主键可以是多个列的组合。这种组合称为复合主键。
- 主键最多可以包含 16 列。
摘要
- 每个表只能有一个主键
- 所有值都是唯一的,可以唯一地标识每一行。