SQL 主键

SQL 主键

一个列或多个列被称为 主键(PK) 用于 唯一标识表中的每一行数据

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

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

在设计复合主键时,应尽可能少地使用列。使用越多的列作为主键,所需的存储空间就会越多,这对存储和性能都不利。

就性能而言,数据量越少,数据库处理速度就越快。

主键的记住事项:

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

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

主键的主要优势:

这种唯一性的主要优势是我们可以获得 快速访问

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

单列的SQL主键:

以下SQL命令在创建”students”表时在”S_Id”列上创建一个主键。

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

多列的SQL主键:

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

注意: 您应该注意,在上面的示例中只有一个主键(pk_StudentID)。但它由两列(S_Id和LastName)组成。

ALTER TABLE上的SQL主键

当表已经创建好,您想在”S_Id”列上创建一个主键约束时,应使用以下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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程