📅  最后修改于: 2020-11-11 09:43:42             🧑  作者: Mango
一列或多列称为主键(PK),它唯一地标识表中的每一行。
如果要创建主键,则在创建或修改表时应定义PRIMARY KEY约束。
当多列用作主键时,称为复合主键。
在设计组合主键时,应使用尽可能少的列。这对存储和性能都有好处,用于主键的列越多,所需的存储空间就越大。
就性能而言,更少的数据意味着数据库可以更快地处理。
当我们为表指定主键约束时,数据库引擎会自动为主键列创建唯一索引。
这种独特性的主要优点是我们可以快速访问。
在oracle中,主键不允许包含超过32列。
创建“ 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),
)
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)组成。
如果已经创建了表,并且要在“ 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