在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
是用于查詢語句中去除重復的行。