菜鸟教程 -- 学的不仅是技术,更是梦想!

SQL 教程
(追記) (追記ここまで)

SQL PRIMARY KEY 约束


SQL PRIMARY KEY 约束

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

PRIMARY KEY 必须包含唯一的值,且不能包含 NULL 值。

每个表只能有一个 PRIMARY KEY,该主键可以由单个列或多个列组成。


CREATE TABLE 时的 SQL PRIMARY KEY 约束

下面的 SQL 在 "Persons" 表创建时在 "P_Id" 列上创建 PRIMARY KEY 约束:

MySQL:

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

SQL Server / Oracle / MS Access:

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

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

MySQL / SQL Server / Oracle / MS Access:

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

注释:在上面的实例中,只有一个主键 PRIMARY KEY(pk_PersonID)。然而,pk_PersonID 的值是由两个列(P_Id 和 LastName)组成的。


ALTER TABLE 时的 SQL PRIMARY KEY 约束

当表已被创建时,如需在 "P_Id" 列创建 PRIMARY KEY 约束,请使用下面的 SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD PRIMARY KEY (P_Id)

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

MySQL / SQL Server / Oracle / MS Access:

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

注释:如果您使用 ALTER TABLE 语句添加主键,必须把主键列声明为不包含 NULL 值(在表首次创建时)。


撤销 PRIMARY KEY 约束

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

MySQL:

ALTER TABLE Persons
DROP PRIMARY KEY

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID
AI 思考中...

1 篇笔记 写笔记

  1. #0

    白云〜purecloud

    178***[email protected]

    195

    撤销PRIMARY KEY约束时,不论约束条件为一列还是多列,对于MySQL,撤销都是

    ALTER TABLE Persons
    DROP PRIMARY KEY

    由于PRIMARY KEY唯一性,MYSQL处理办法简单。

    但对于 SQL Server / Oracle / MS Access, 一个列

    ALTER TABLE Persons
    DROP CONSTRAINT P_Id

    若起约束名,也可如下多个列

    ALTER TABLE Persons
    DROP CONSTRAINT pk_PersonID

    白云〜purecloud

    178***[email protected]

    9年前 (2017年10月07日)

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /