SQL Primary Key 主键
一列或多列称为Primary Key 主键 (PK),它唯一地标识表中的每一行。
如果要创建主键,则应在创建或修改表时定义 PRIMARY KEY 约束。
当多个列用作主键时,称为复合主键。
在设计复合主键时,您应该使用尽可能少的列。它对存储和性能都有好处,用于主键的列越多,所需的存储空间就越多。
在性能方面,更少的数据意味着数据库可以更快地处理。
一、SQL Primary Key 主键 特点
- Primary Key主键强制执行表的实体完整性。
- Primary Key主键始终具有唯一数据。
- Primary Key主键长度不能超过 900 字节。
- Primary Key主键不能有空值。
- Primary Key主键不能有重复值。
- 一张表只能包含一个Primary Key主键约束。
注意:当我们为表指定主键约束时,数据库引擎会自动为主键列创建唯一索引。
二、SQL Primary Key 主键 优点
Primary Key 主键的主要优点是我们可以提高访问速度。
注意:在 Oracle 中,包含主键不允许超过 32 列。
三、一列 Primary Key 主键
以下 SQL 命令在创建“students”表时在“S_Id”列上创建一个 PRIMARY KEY。
MySQL:
CREATE TABLE students
(
S_Id int NOT NULL,
LastName varchar (255) NOT NULL,
FirstName varchar (255),
Address varchar (255),
City varchar (255),
PRIMARY KEY (S_Id)
)
SQL Server, Oracle, MS Access:
CREATE TABLE students
(
S_Id int NOT NULL PRIMARY KEY,
LastName varchar (255) NOT NULL,
FirstName varchar (255),
Address varchar (255),
City varchar (255),
)
四、多列 Primary Key 主键
MySQL、SQL Server、Oracle、MS Access:
CREATE TABLE students
(
S_Id int NOT NULL,
LastName varchar (255) NOT NULL,
FirstName varchar (255),
Address varchar (255),
City varchar (255),
CONSTRAINT pk_StudentID PRIMARY KEY (S_Id, LastName)
)
注意:您应该注意,在上面的示例中只有一个 PRIMARY KEY (pk_StudentID)。但是,它由两列(S_Id 和 LastName)组成。
五、ALTER TABLE 上的 SQL 主键
当表已经创建并且您想要在“S_Id”列上创建 PRIMARY KEY 约束时,您应该使用以下 SQL:
一列的主键:
ALTER TABLE students
ADD PRIMARY KEY (S_Id)
多列的主键:
ALTER TABLE students
ADD CONSTRAINT pk_StudentID PRIMARY KEY (S_Id,LastName)
注意:当您使用 ALTER TABLE 语句添加主键时,主键列不能包含 NULL 值(当第一次创建表时)。
六、如何删除主键约束?
如果要 DROP(删除)主键约束,应使用以下语法:
MySQL:
ALTER TABLE students
DROP PRIMARY KEY
SQL Server / Oracle / MS Access:
ALTER TABLE students
DROP CONSTRAINT pk_StudentID
热门文章
优秀文章