SQL의 기본 뼈대, SELECT절과 FROM절
SELECT문은 데이터베이스에 보관되어 있는 데이터를 조회하는데 사용한다.
SELECT절과 FROM절을 기본 구성으로 SELECT문을 작성한다.
FROM절은 조회할 데이터가 저장된 테이블 이름을 명시한다.
SELECT절은 FROM절에 명시한 테이블에서 조회할 열이나 여러 열에 저장된 데이터의 조합 또는 연산식을 지정한다.
중복 데이터 삭제 DISTINCT
SELECT문으로 데이터를 조회한 후 DISTINCT를 사용하여 중복을 제거한다. DISTINCT는 SELECT절에 열 이름을 명시하기 전에 선택적으로 사용한다. 조회한 데이터의 내용에서 불필요한 중복을 제거하고 특정 데이터 종류만 확인하고 싶을 때 사용한다. SELECT절에 명시한 열 중에서 같은 내용이 두 개 이상일 경우, 중복 행은 한개만 남겨두고 그 밖의 행은 모두 제거한다. 여러 개의 열을 명시한 경우 , 로 구분하면된다.
ALL은 DISTINCT와 반대로 데이터 중복을 제거하지 않고 그대로 출력한다. 중복 설정이 없을 경우 ALL을 기본으로 한다.
별칭 설정하기
SELECT문의 결과를 보면 SELECT절에 명시한 열 이름이 결과 화면의 위쪽에 출력된다. SQL문에서는 최종 출력되는 열 이름을 임의로 지정할 수 있다. 본래 열 이름 대신에 붙이는 이름을 별칭이라고한다
1. 열과 연산식
열 이름에 열, 숫자, 연산식 등을 포함해 작성할 수 있다.
2. 별칭을 지정하는 방식
가공된 문장 이후 1) 한칸 띄우고 별칭 지정 2) 한칸 띄우고 별칭을 " " 사이에 넣기 3) 한칸 띄우고 AS 한칸 뒤에 별칭 지정 4) 한칸 띄우고 AS 한칸 뒤에 " "사이에 넣어서 지정 >> 보통 3번을 많이 쓴다
최종적으로 출력되기를 원하는 열 이름을 직접 지정할 때 사용하며, 보안이나 데이터 노출 문제 때문에사용하는 경우도 있다. 데이터가 나오기 까지의 진행 과정을 숨기기 위한 용도로도 사용한다.
원하는 순서로 출력 데이터를 정렬하는 ORDER BY
SELECT문을사용하여 데이터를 조회할 때 시간이나 이름 순서 또는 어떤 다른 기준으로 데이터를 정렬해서 출력해야 하는 경우가 생긴다. 이때 사용하는 명령어가 ORDER BY이며, SELECT문을 작성할 때 사용할 수 있는 여러 절 중 가장 마지막 부분에 작성한다. ORDER BY절에 지정한 열은 먼저 지정한 열을 우선으로 정렬하고, 정렬 옵션을 지정하지 않을 경우 오름차순(ASC)가 기본값이된다. 내림차순으로 하고싶을때는 열 이름을 작성한 후, DESC로 지정하면 된다.
정렬이 꼭 필요한 경우가 아니라면 사용하지 않는편이 좋다. 흩어진 데이터를 기준에 따라 순서를 맞추는 것은 자원( = 비용) 을 많이 소모하기 때문이다. ORDER BY절이 존재할 경우 SELECT문을 통해 조회할 데이터를 모두 확정한 상태에서 ORDER BY절의 명시된 기준에 따라 정렬한다. 이때 데이터의 양 또는 정렬 방식에 따라 출력 데이터를 선정하는 시간보다 정렬하는데 시간이 더 걸릴수도 있다. 즉, 정렬을 하지 않으면 결과를 더 빨리 출력할 수 있다. SQL문의 효율이 낮아지는 것은 서비스 응답 시간이 느려진다는 것을 뜻한다.