📜  SQL primary-key

📅  最后修改于: 2020-11-11 09:43:42             🧑  作者: Mango

SQL主键

一列或多列称为主键(PK),它唯一地标识表中的每一行。

如果要创建主键,则在创建或修改表时应定义PRIMARY KEY约束。

当多列用作主键时,称为复合主键。

在设计组合主键时,应使用尽可能少的列。这对存储和性能都有好处,用于主键的列越多,所需的存储空间就越大。

就性能而言,更少的数据意味着数据库可以更快地处理。

要记住的主键要点:

  • 主键可增强表的实体完整性。
  • 主键始终具有唯一数据。
  • 主键长度不能超过900个字节。
  • 主键不能为空值。
  • 主键不能有重复的值。
  • 一个表只能包含一个主键约束。

当我们为表指定主键约束时,数据库引擎会自动为主键列创建唯一索引。

主键的主要优点:

这种独特性的主要优点是我们可以快速访问。

在oracle中,主键不允许包含超过32列。

一列的SQL主键:

创建“ students”表时,以下SQL命令在“ S_Id”列上创建PRIMARY KEY。

MySQL:

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),
)

多列的SQL主键:

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值(首次创建表时)。

如何删除主键约束?

如果要删除(删除)主键约束,则应使用以下语法:

MySQL:

ALTER TABLE students
DROP PRIMARY KEY

SQL Server / Oracle / MS Access:

ALTER TABLE students
DROP CONSTRAINT pk_StudentID