📅  最后修改于: 2023-12-03 15:20:18.331000             🧑  作者: Mango
在SQL中,我们可以通过使用UNIQUE
约束来创建唯一列。一个唯一列可以确保列中的所有值都是唯一的,即每个值在该列中只出现一次。然而,如果我们需要确保多个列的组合是唯一的,即多个列的值的组合在表中只出现一次,我们可以使用"唯一多列"约束。
要创建唯一多列,可以使用以下语法:
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
...
UNIQUE (column1, column2, ...)
);
在上面的语法中,table_name
是表的名称,column1
,column2
等是表的列名,datatype
是列的数据类型。
例如,下面是一个示例表格,其中包含两个列:name
和age
,我们想要确保这两个列的组合在表中是唯一的。
CREATE TABLE person (
name TEXT,
age INTEGER,
UNIQUE (name, age)
);
让我们通过一些示例来说明唯一多列的概念。
我们可以通过使用INSERT INTO
语句向表中插入唯一多列值。如果我们插入的组合在表中已经存在,那么插入操作将失败。
INSERT INTO person (name, age)
VALUES ('John', 25);
-- 此插入操作成功,因为('John', 25)是唯一的
INSERT INTO person (name, age)
VALUES ('Mary', 30);
-- 此插入操作成功,因为('Mary', 30)是唯一的
INSERT INTO person (name, age)
VALUES ('John', 25);
-- 此插入操作失败,因为('John', 25)在表中已经存在
我们可以使用SELECT
语句查询唯一多列值。
SELECT * FROM person;
上述语句将返回person
表中的所有行。
我们可以使用UPDATE
语句更新唯一多列值。
UPDATE person
SET age = 35
WHERE name = 'Mary';
上述语句将更新person
表中名为'Mary'的行的年龄为35。
我们可以使用DELETE
语句删除唯一多列值。
DELETE FROM person
WHERE name = 'John' AND age = 25;
上述语句将删除person
表中名为'John'且年龄为25的行。
唯一多列约束是确保多个列的组合在表中是唯一的一种方式。通过创建唯一多列,我们可以防止重复数据的插入,并确保数据的一致性。在操作唯一多列时,我们需要注意插入和更新操作可能会失败,因为组合已经存在于表中。