우리가 앞으로 가장 많이 써야하는 SELECT 문
내가 그걸 가장 많이 쓸지 너가 어떻게 알어? 라는 궁금증이 생길 사람도 아마 몇 일 뒤
무의식적으로 SELECT 를 치고 있는 자신을 발견할 것입니다 ㅎㅎ
그만큼 가장 중요하고 자주 쓰기 때문에 사용법을 정확히 숙지하고 있어야 합니다. 또한
테이블에 있는 데이터를 조회하는 명령어이기 때문에 잘못 조회했다가는 큰일 날 수 있습니다.
따라서 우린 SELECT 문의 사용법과 작동 순서를 살펴 보겠습니다.
SELECT 문의 필수절로는 SELECT와 FROM 이 있습니다. 이 두개만 존재하면 SELECT 문은 수월하게 진행되죠
1. 예제
지금 저희의 DB 에는 MEMBER 라는 테이블이 있다고 가정합시다.
이 MEMBER에는 ID와 PASSWORD 라는 두 개의 컬럼이 존재합니다.
SELECT ID, PASSWORD
FROM MEMBER
위 예제는 MEMBER 라는 테이블에서 모든 ID와 PASSWORD를 조회합니다.
여기서
SELECT 는 조회한다의 의미
FROM 은 어디에서? 를 뜻합니다.
그렇다면 내가 원하는 결과만을 조회하기 위해서는 어떻게 해야할까요?
- WHERE
SELECT ID, PASSWORD
FROM MEMBER WHERE PASSWORD = '1234'
위 예제는 MEMBER 테이블에서 PASSWORD가 '1234' 인 행의 ID와 PASSWORD를 조회합니다.
위와 같이 조건을 WHERE 절을 사용하여 조건을 걸어줌으로써 원하는 결과만 조회할 수 있습니다.
또한 조회결과에 대해서 정렬을 걸어줄 수 있습니다.
- ORDER BY
SELECT ID, PASSWORD
FROM MEMBER ORDER BY 1
위 예제는 조건이 없으므로 모든 ID,PASSWORD에 대해 ID순으로 오름차순 정렬한 결과를 조회합니다. 오름차순(ASC)는 생략되어 있기 때문에 만약 내림차순 하고 싶다면
ORDER BY 1 DESC를 하면 됩니다.
- GROUP BY
SELECT COUNT(ID), PASSWORD
FROM MEMBER GROUP BY PASSWORD
위 예제는 조건이 없으므로 모든 ID,PASSWORD에 대해 같은 PASSWORD를 가진 기준으로 특정 컬럼을 그룹화 합니다. 모든 행의 개수를 세는 COUNT와는 다르게 특정 개수만 조회하려 할 때 주로 사용됩니다. 그룹화한 상태에서 조건으로 주려면 HAVING이 사용되고
무조건 집계함수와 같이 써야합니다.
집계함수 : 값에 대해 특정 연산을 수행하는 함수 ( SUM, AVG, COUNT, MIN, MAX )
작동순서
즉 작동 순서를 요약하자면
- FROM > WHERE > SELECT > GROUP BY > HAVING > ORDER BY > ASC/DESC