SQL Server主键约束

主键在SQL Server中用于唯一标识表中的每一行,可通过PRIMARY KEY约束创建。每个表只能有一个主键,且所有主键列必须为NOT NULL。创建主键时,系统会自动创建唯一索引。示例包括单列主键和多列主键的创建,并展示了如何通过ALTER TABLE语句为已有表添加主键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PRIMARY KEY简介:

 主键是唯一标识表中每一行的列或一组列。可以使用PRIMARY KEY约束为表创建主键。 如果主键只包含一列,则可以将 PRIMARY KEY 约束定义为列约束:

CREATE TABLE table_name (

 pk_column data_type PRIMARY KEY,

 ...

);

如果主键有两列或更多列,则必须使用 PRIMARY KEY 约束作为表约束:

CREATE TABLE table_name (

 pk_column_1 data_type,

 pk_column_2 data type,

 ...

PRIMARY KEY (pk_column_1, pk_column_2)

 );

每个表只能有一个主键。参与主键的所有列必须定义为 NOT NULL 。

如果没有为这些列指定 NOT NULL 约束,SQL Server会自动为所有主键列设置 NOT NULL 约束。 在创建主键时,SQL Server还会自动创建唯一的聚簇索引(如果指定,则为非聚集索引)。

PRIMARY KEY约束示例:

 以下示例创建一个包含主键的表,该主键包含一列:

CREATE TABLE sales.activities (

 activity_id INT PRIMARY KEY IDENTITY,

activity_name VARCHAR (255) NOT NULL,

activity_date DATE NOT NULL

 );

在此 sales.activities 表中, activity_id 列是主键列。 activity_id 列包含唯一值。 IDENTITY 属性用于 activity_id 列以自动生成唯一的整数值。 以下语句创建一个名为 sales.participants 的新表,其主键由两列组成:

CREATE TABLE sales.participants(

 activity_id int,

customer_id int,

PRIMARY KEY(activity_id, customer_id)

);

在此示例中, activity_id 或 customer_id 列中的值可以重复,但两列中的每个值组合必须是唯一 的。 通常,表始终具有在创建时定义的主键。 但是,有时,现有表可能由于某种原因而没有定义主键。 在这种情况下,可以使用 ALTER TABLE 语句向表中添加主键。请考虑以下示例。 以下语句创建没有主键的表:

CREATE TABLE sales.events( event_id INT,

event_name VARCHAR(255),

 start_date DATE NOT NULL,

duration DEC(5,2)

);

要将 event_id 列作为主键,请使用以下 ALTER TABLE 语句:

ALTER TABLE sales.events ADD PRIMARY KEY(event_id);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值