本文概要
一列或多列被称为主键(PK),其唯一地标识表中的每一行。
如果你想创建一个主键,那么当你创建定义主键约束或修改表。
当多个列用作一个主键,它被称为复合主键。
在设计复合主键,你应该尽可能少的列可以使用。这是良好的存储和性能都,你使用的主键的多个列,你需要更多的存储空间。
性能方面客栈,更少的数据意味着数据库可以处理速度更快。
要记住的要点主键:
- 主键强制表的实体完整性。
- 主键总是有独特的数据。
- 主键的长度不能超过900个字节被超过。
- 主键不能为空值。
- 可以有一个主键,没有重复的值。
- 一个表只能包含一个主键约束。
当我们为表指定一个主键约束,数据库引擎自动创建的主键列的唯一索引。
主键的主要优点:
这种独特性的主要优点是,我们得到了快速的访问。
在Oracle,它不允许主键以包含多于32个列。
一列SQL主键
创建了“学生”表时,下面的SQL命令创建的“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服务器,Oracle,MS访问:
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服务器,Oracle,MS访问:
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和姓氏)组成。
在ALTER TABLE SQL主键
当已经创建表,并且要创建你应该使用下面的SQL的“S_ID”列PRIMARY KEY约束:
在一列的主键:
ALTER TABLE students
ADD PRIMARY KEY (S_Id)
多列主键:
ALTER TABLE students
ADD CONSTRAINT pk_StudentID PRIMARY KEY (S_Id,LastName)
当你使用ALTER TABLE语句来添加主键,主键列不能包含空值(第一次创建表时)。
如何删除主键约束?
如果你想删除(删除)主键约束,你应该使用下面的语法:
MySQL的:
ALTER TABLE students
DROP PRIMARY KEY
SQL服务器/甲骨文/ MS访问:
ALTER TABLE students
DROP CONSTRAINT pk_StudentID
评论前必须登录!
注册