DISTINCT는 SQL 쿼리에서 중복 레코드를 제거하는 데 사용되는 키워드입니다.
중복 데이터를 삭제하려면 SELECT 문에서 DISTINCT를 사용하여 결과 집합에서 중복된 행을 제거합니다.
중복된 행을 제거하고 결과 집합에서 각 값이 한 번만 나타나도록 만들 때 유용합니다.
기본 사용법
SELECT DISTINCT column1, column2
FROM table_name;
위의 쿼리에서 column1과 column2는 테이블의 열 이름을 나타냅니다.
이 쿼리는 table_name 테이블에서 중복된 행을 제거하고 고유한 값들만 반환합니다.
모든 열에서 DISTINCT 사용하기
SELECT DISTINCT *
FROM table_name;
*를 사용하면 테이블의 모든 열에 DISTINCT를 적용할 수 있습니다.
그러나 주의해야 할 점은 모든 열의 값이 동일한 행만 중복으로 간주되므로 결과 집합에는 특정 열의 고유한 값만 있을 수 있습니다.
중복된 값 확인하기
DISTINCT를 사용하기 전에 중복된 값이 어떻게 나타나는지 확인하려면 다음 쿼리를 사용할 수 있습니다:
SELECT column1, COUNT(*)
FROM table_name
GROUP BY column1
HAVING COUNT(*) > 1;
이 쿼리는 column1 값을 가진 행이 몇 번 중복되었는지 확인하고 중복된 값을 찾아줍니다.
DISTINCT를 사용 예제
SELECT DISTINCT ENAME, DEPTNO
FROM EMP;
결과
위의 SQL 쿼리는 "EMP" 테이블에서 "ENAME" (사원 이름)과 "DEPTNO" (부서 번호) 열의 고유한(distinct) 값들을 선택하는 쿼리입니다. 이 쿼리를 실행하면 "EMP" 테이블에서 중복된 값이 제거된 "ENAME"과 "DEPTNO" 열의 모든 고유한 조합을 반환합니다.
DISTINCT 사용 주의점
- DISTINCT는 모든 열에 적용되는 것이 아니라, SELECT 문에서 명시적으로 지정한 열에만 적용됩니다.
- 중복된 행이 완전히 동일해야 중복으로 간주됩니다. 즉, 모든 열의 값이 동일한 두 개 이상의 행만 중복으로 간주됩니다.
- DISTINCT를 사용하면 결과 집합에서 중복을 제거하므로 결과 집합의 크기가 줄어들 수 있습니다.
- DISTINCT를 사용하면 중복을 제거한 결과를 반환합니다. 중복된 행을 실제로 삭제하지는 않습니다. 데이터를 변경하지 않고 중복을 제거하는 것이 주요 차이점입니다.
DISTINCT는 결과 집합에서 중복된 행을 제거하지만 원본 데이터를 수정하지는 않습니다.
데이터를 영구적으로 수정하려면 DELETE나 UPDATE 문을 사용해야 합니다.
DISTINCT를 사용하면 결과 집합의 크기가 줄어들 수 있으므로 성능에 영향을 미칠 수 있습니다.
큰 데이터셋에서 사용할 때 주의가 필요합니다.
DISTINCT를 사용하면 데이터를 정제하고 분석하기 쉽게 만들 수 있으며, 중복된 값을 처리할 때 매우 유용합니다.
중복된 데이터를 다루는 다양한 상황에서 활용할 수 있으며 데이터베이스에서 유용한 기능 중 하나입니다.
'Database' 카테고리의 다른 글
결과 값을 묶어주는 GROUP BY 절 (1) | 2023.09.04 |
---|---|
[ORACLE] 자료형, 객체, PL/SQL (0) | 2023.08.31 |
관계형 데이터베이스의 구성요소 (0) | 2023.08.30 |
관계형 데이터베이스와 SQL (0) | 2023.08.30 |
객체 지향형 데이터 모델과 관계형 데이터 모델 (0) | 2023.08.30 |
댓글