💡DISTINCT
SELECT문에서 중복값을 제거할 때 distinct 키워드를 사용한다.
distinct는 컬럼 리스트에 함께 작성하며, 'distinct 컬럼명'의 형태로 작성한다.
과거에 자바에서 스트림의 distinct() 메소드를 다룬 적이 있다.
복습 차원에서 읽어보도록 하자.
컬럼이 1개인 경우
SELECT CONTINENT FROM TBLCOUNTRY;
중복값 제거
SELECT DISTINCT CONTINENT FROM TBLCOUNTRY;
중복값을 제거하지 않으면 같은 데이터를 여러 번 출력하여 정확히 어떤 데이터로 구성되어 있는지 의미를 알기 쉽지 않다.
중복값을 제거한 결과 데이터에서 대륙에 어떤 데이터가 저장되어 있는지 알 수 있다.
SELECT DISTINCT BUSEO FROM TBLINSA;
SELECT DISTINCT JIKWI FROM TBLINSA;
컬럼이 2개 이상인 경우
SELECT
DISTINCT BUSEO, NAME
FROM TBLINSA;
클래스에서 인스턴스를 정의하는 행위가 테이블에서는 컬럼을 정의하는 행동이다. 이러한 정의로 실체화된 하나의 오브젝트가 만들어지는데, 위 오브젝트에서 데이터 단위는 부서와 이름인 셈이다.
따라서 부서와 이름이 한 몸이기 때문에 부서에서 중복이 발생하고 있지만 중복 제거를 할 수 없는 것이다.
이 데이터에서 중복 제거가 되는 경우는 행의 데이터가 전부 동일한 경우, 즉 '부서'와 '이름'이 동일한 경우 뿐이다.
distinct는 특정 컬럼에 붙은 게 아니라 컬럼 리스트 앞에 붙은 것이라는 사실을 기억하도록 하자!
데이터베이스 모델링이라는 추상적인 파트가 있는데, 해당 파트에서는 이를 인스턴스(엔티티)라고 부른다.