📜  SQL unique-key

📅  最后修改于: 2020-11-11 09:42:57             🧑  作者: Mango

SQL中的唯一键

唯一键是表的一个或多个字段/列的集合,它们唯一地标识数据库表中的记录。

您可以说它有点像主键,但是它只能接受一个空值,并且不能有重复的值。

唯一键和主键都为一列或一组列的唯一性提供保证。

在主键约束中有一个自动定义的唯一键约束。

一张表可能有许多唯一的键约束,但一张表可能只有一个PRIMARY KEY约束。

在CREATE TABLE上的SQL UNIQUE KEY约束:

如果要在创建“学生”表时在“ S_Id”列上创建UNIQUE约束,请使用以下SQL语法:

SQL Server / Oracle / MS Access:

(在单列上定义唯一的键约束):

CREATE TABLE students
(
S_Id int NOT NULL UNIQUE,
LastName varchar (255) NOT NULL,
FirstName varchar (255),
City varchar (255)
)

MySQL:

CREATE TABLE students
CREATE TABLE students
(
S_Id int NOT NULL,
LastName varchar (255) NOT NULL,
FirstName varchar (255),
City varchar (255),
UNIQUE (S_Id)
)

(在多个列上定义唯一的键约束):

MySQL / SQL Server / Oracle / MS Access:

 CREATE TABLE students
(
S_Id int NOT NULL,
LastName varchar (255) NOT NULL,
FirstName varchar (255),
City varchar (255),
CONSTRAINT uc_studentId UNIQUE (S_Id, LastName)
)

在ALTER TABLE上的SQL UNIQUE KEY约束:

如果要在创建表后在“ S_Id”列上创建唯一约束,则应使用以下SQL语法:

(在单列上定义唯一的键约束):

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE students
ADD UNIQUE (S_Id)

(在多个列上定义唯一的键约束):

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE students
ADD CONSTRAINT uc_StudentId UNIQUE  (S_Id, LastName)

DROP SYNTAX for FOREIGN KEY约束:

如果要删除UNIQUE约束,请使用以下SQL语法:

MySQL:

ALTER TABLE students
DROP INDEX uc_studentID

SQL Server / Oracle / MS Access:

ALTER TABLE students
DROP CONSTRAINT uc_studentID