SQL 唯一键
唯一键是一张数据库表中的一个或多个字段/列的集合,能够唯一地标识一条记录。
可以说它类似于主键,但它只能接受一个空值,并且不能有重复值。
唯一键和主键都提供了对一个列或一组列的唯一性的保证。
主键约束中自动定义了唯一键约束。
一个表可以有多个唯一键约束,但只能有一个主键约束。
在CREATE TABLE语句中使用SQL UNIQUE KEY约束:
如果要在创建”students”表时对”S_Id”列创建一个唯一约束,可以使用以下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)
)
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)
删除FOREIGN KEY约束的语法:
如果您想删除唯一约束,请使用以下SQL语法:
MySQL:
ALTER TABLE students
DROP INDEX uc_studentID
SQL Server / Oracle / MS Access:
ALTER TABLE students
DROP CONSTRAINT uc_studentID