在SQL中,UNIQUE
和DISTINCT
都用于返回唯一的结果集,但在使用上有一些区别。
UNIQUE
用于创建唯一约束,以确保表中的某个列或者一组列的值是唯一的。当在列上定义了唯一约束后,该列将不允许重复的值。如果尝试插入一个重复的值,数据库会抛出错误。例如,下面的语句创建了一个名为employees
的表,并在employee_id
列上定义了唯一约束:
CREATE TABLE employees (
employee_id INT UNIQUE,
first_name VARCHAR(50),
last_name VARCHAR(50),
...
);
DISTINCT
用于查询语句中,用于去除重复的行并返回唯一的结果集。它通常与SELECT
语句一起使用。例如,下面的语句将从employees
表中选择不重复的last_name
列的值:
SELECT DISTINCT last_name FROM employees;
需要注意的是,DISTINCT
关键字作用于所有的选择列,而不仅仅是单个列。因此,如果在SELECT语句中同时选择多个列,DISTINCT
将适用于所有这些列的组合,而不仅仅是其中一个列的唯一性。例如,下面的语句将选择不重复的last_name
和first_name
列的组合:
SELECT DISTINCT last_name, first_name FROM employees;
总结来说,UNIQUE
是用于创建唯一约束,DISTINCT
是用于查询语句中去除重复的行。