SQL 主键:创建并添加到现有表中

SQL中的主键是什么?
主键 SQL服务器 主键是用于唯一标识一条记录的字段(或字段组合)。它是一列或一组列,其中每个值都是唯一的。换句话说,任何两行都不能共享同一个主键值。
主键规则
- 每个表只能有一个主键。
- 所有值都是唯一的,主键值可以唯一标识每一行。
- 系统不允许插入主键值已存在于表中的行。
- 主键不能为空。
下图总结了以上关于 SQL 主键的所有要点。
如何在 SQL Server 中创建主键
创建主键有两种方法:
- SQL Server Management Studio中
- 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) . );
这里,CONSTRAINT 指定了主键,PRIMARY KEY 标记了必须保持唯一的列,并且每一列也都需要一个主键。 数据类型.
让我们创建一个包含一列作为 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_TSQL_PK 表的主键。
例如:让我们看看是否允许输入多个具有相同课程 ID 的记录。
步骤 1)插入四行,每行具有不同的 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 值的列上创建主键;如果某个列当前允许 NULL 值,则必须先将其更改为 NOT 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 列。









