sql 主键[Primary Key]详解

2018年02月19日 09:22 | 4602次浏览

SQL PRIMARY KEY 主键约束

PRIMARY KEY 约束唯一标识数据库表中的每条记录。

主键必须包含唯一的值。

主键列不能包含 NULL 值。

每个表都应该有一个主键,并且每个表只能有一个主键。


主键 (Primary Key) 中的每一笔数据都是表格中的唯一值。换言之,它是用来独一无二地确认一个表格中的每一行数据。主键可以是原本数据内的一个列,或是一个人造列 (与原本数据没有关系的栏位)。主键可以包含一或多个列。当主键包含多个列时,称为组合键 (Composite Key)。

主键可以在建置新表格时设定 (运用 CREATE TABLE 语句),或是以改变现有的表格架构方式设定 (运用 ALTER TABLE)。

以下举几个在建置新表格时设定主键的方式:

MySQL: 

CREATE TABLE Customer 
(SID integer, 
Last_Name varchar(30), 
First_Name varchar(30), 
PRIMARY KEY (SID));

Oracle

CREATE TABLE Customer 
(SID integer PRIMARY KEY, 
Last_Name varchar(30), 
First_Name varchar(30));

SQL Server

CREATE TABLE Customer 
(SID integer PRIMARY KEY, 
Last_Name varchar(30), 
First_Name varchar(30));

如果需要命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName))

如果在表已存在的情况下为 "SID" 列创建 PRIMARY KEY 约束,请使用下面的 SQL:

以下则是以改变现有表格架构来设定主键的方式:

MySQL

ALTER TABLE Customer ADD PRIMARY KEY (SID);

Oracle

ALTER TABLE Customer ADD PRIMARY KEY (SID);

SQL Server

ALTER TABLE Customer ADD PRIMARY KEY (SID);

请注意,在用 ALTER TABLE 语句来添加主键之前,我们需要确认被用来当做主键的列是设定为 『NOT NULL』 ;也就是说,那个列一定不能没有数据。 

如果需要命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)


撤销 PRIMARY KEY 约束

如需撤销 PRIMARY KEY 约束,请使用下面的 SQL:

MySQL:

ALTER TABLE Persons
DROP PRIMARY KEY

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID



小说《我是全球混乱的源头》

感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程