在SQL中,UNIQUE
和DISTINCT
都用于返回唯一的結(jié)果集,但在使用上有一些區(qū)別。
UNIQUE
用于創(chuàng)建唯一約束,以確保表中的某個列或者一組列的值是唯一的。當在列上定義了唯一約束后,該列將不允許重復(fù)的值。如果嘗試插入一個重復(fù)的值,數(shù)據(jù)庫會拋出錯誤。例如,下面的語句創(chuàng)建了一個名為employees
的表,并在employee_id
列上定義了唯一約束:
CREATE TABLE employees (
employee_id INT UNIQUE,
first_name VARCHAR(50),
last_name VARCHAR(50),
...
);
DISTINCT
用于查詢語句中,用于去除重復(fù)的行并返回唯一的結(jié)果集。它通常與SELECT
語句一起使用。例如,下面的語句將從employees
表中選擇不重復(fù)的last_name
列的值:
SELECT DISTINCT last_name FROM employees;
需要注意的是,DISTINCT
關(guān)鍵字作用于所有的選擇列,而不僅僅是單個列。因此,如果在SELECT語句中同時選擇多個列,DISTINCT
將適用于所有這些列的組合,而不僅僅是其中一個列的唯一性。例如,下面的語句將選擇不重復(fù)的last_name
和first_name
列的組合:
SELECT DISTINCT last_name, first_name FROM employees;
總結(jié)來說,UNIQUE
是用于創(chuàng)建唯一約束,DISTINCT
是用于查詢語句中去除重復(fù)的行。