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