본문 바로가기
SQL

SQL SELECT DISTINCT 구문

by 진격의 파파 2013. 8. 12.
반응형

 

 

SQL 구문에서 중복된 값을 배제하고 고유의 값을 가져오고 싶을 경우 Distinct 를 사용합니다.  이와 비슷한 의미로 Group by 구문이 있는데 간단하게 예제 구문만 비교하고 추후 포스팅에서 설명하기로 하겠습니다.  

 

데이터베이스에 데이터를 저장하다 보면 중복되는 값이 종종 들어갑니다. 예를들어 회원의 정보를 입력받고 저장되는 구문을 프로그래밍 할 경우 이름의 중복이 있을수도 있고, 나이의 중복이 있을수도 있습니다. 그외 여러가지 경우가 있는데 그럴때 중복된 데이터를 배제하고 데이터를 가져오고 싶을경우

select DISTINCT name from member;

위 처럼 데이터베이스에 명령을 하면 됩니다.

위의 명령을 아래의 "member" 테이블에 적용시키면

 id

 user_id

 user_pwd

 name

 age

 phone

 email

 1

 test1

 1111

 홍길동

 25

 010-1111-1111

 test1@test.com

 2

 test2

 2222

 임꺽정

 45

 010-2222-2222

 test2@test.com 

 3

 test3

 3333

 이철수

 34

 010-3333-3333

 test3@test.com

 4

 test4

 4444

 김영희

 28

 010-4444-4444

 test4@test.com

 5

 test5

 5555

 이철수

 34

 010-5555-5555

 test5@test.com

 6

 test6

 6666

 김영희

 54

 010-6666-6666

 test6@test.com

 7

 test7

 7777

 이순신

 32

 010-7777-7777

 test7@test.com

 8

 test8

 8888

 이해신

 23

 010-8888-8888

 test8@test.com

 9

 test9

 9999

 박찬호

 39

 010-9999-9999

 test9@test.com

 

김영희

박찬호

이순신

이철수

이해신

임꺽정

홍길동

처럼 중복된 이철수, 김영희를 제외하면서 한명으로 인식하고 출력됩니다.

 

 

위에서 group by 에 관해 잠깐 설명했었는데 group by 의 경우

select name from member group by name asc;

select name from member group by name desc;

group 말 그대로 그룹을 지어라는 의미입니다. 그래서 그룹끼리 묶이게 되는 것이죠. 그리고 asc, desc (내림차순, 오름차순) 는 정렬을 어떻게 할지에 대한 구문입니다. 이 부분도 추후 더 상세히 포스팅하겠습니다.

어쨋든 Distinct는 중복을 제거하고 고유한 값만 가져오는 함수이며,

Group by 는 그룹을 지어서 가져오는 함수 입니다. 우선 여기까지만 설명하고 추후 Group by 포스팅에서 더 상세히 설명하겠습니다.

반응형

'SQL' 카테고리의 다른 글

SQL AND OR 구문  (0) 2013.08.14
SQL WHERE 구문  (0) 2013.08.13
SQL Select 구문  (0) 2013.08.09
SQL 기본 구문  (0) 2013.08.08
SQL 소개  (0) 2013.08.07